ਲੌਗ ਵਧਦਾ ਹੈ ਪਰ ਦੁਬਾਰਾ ਨਹੀਂ ਬਣ ਸਕਦਾ: ਡਾਇਰੈਕਟਰੀ ਦਾ ACL ਜਾਂਚੋ
ਫਾਈਲ ਵਿੱਚ ਜੋੜਨ ਲਈ ਉਸ ਦੀ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਨਵਾਂ ਨਾਮ ਲੋੜੀਂਦਾ ਨਹੀਂ; ਬਣਾਉਣ ਲਈ ਲੋੜੀਂਦਾ ਹੈ। ਕੁਝ ਵੀ ਫੈਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪਹੁੰਚ ACL ਦੀ ਵਿਰਾਸਤੀ ਡਿਫਾਲਟ ਨਾਲ ਤੁਲਨਾ ਕਰੋ।
ਲਗਾਤਾਰ ਵਧ ਰਿਹਾ ਲੌਗ ਉਸੇ ਪਲ ਵਧਣਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਉਸ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਗਲਤੀ ਕਹਿੰਦੀ ਹੈ ਕਿ ਇਜਾਜ਼ਤ ਨਾਮਨਜ਼ੂਰ ਹੈ। ਲੌਗ ਫਾਈਲ ਨੂੰ ਹੀ ਵੱਧ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਹੈ, ਇਹ ਲੁਭਾਉਣ ਵਾਲਾ ਸਿੱਟਾ ਹੈ, ਪਰ ਫਾਈਲ ਉਸੇ ਖਾਤੇ ਲਈ ਪਹਿਲਾਂ ਹੀ ਲਿਖਣਯੋਗ ਹੋ ਸਕਦੀ ਹੈ। ਮੌਜੂਦਾ ਨਾਮ ਵਿੱਚ ਜੋੜਨਾ ਅਤੇ ਨਵਾਂ ਨਾਮ ਬਣਾਉਣਾ ਦੋ ਵੱਖਰੀਆਂ ਜਾਂਚਾਂ ਹਨ, ਅਤੇ ਸਿਰਫ਼ ਦੂਜੀ ਹੀ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਪੁੱਛਦੀ ਹੈ।
ਜੋੜਨਾ ਅਤੇ ਬਣਾਉਣਾ ਵੱਖਰੀਆਂ ਜਾਂਚਾਂ ਹਨ
ਮੌਜੂਦਾ ਫਾਈਲ ਨੂੰ ਜੋੜਨ ਲਈ ਖੋਲ੍ਹਣ ਵਿੱਚ ਉਸ ਫਾਈਲ ਉੱਤੇ ਲਿਖਣ ਪਹੁੰਚ ਅਤੇ ਉਸ ਦੇ ਰਾਹ ਦੀ ਹਰ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਖੋਜ ਪਹੁੰਚ ਚਾਹੀਦੀ ਹੈ। ਫਾਈਲ ਬਣਾਉਣ ਵਿੱਚ ਉਸ ਨੂੰ ਰੱਖਣ ਵਾਲੀ ਡਾਇਰੈਕਟਰੀ ਉੱਤੇ ਲਿਖਣ ਅਤੇ ਖੋਜ ਚਾਹੀਦੀ ਹੈ, ਕਿਉਂਕਿ ਕਾਰਵਾਈ ਉਸ ਵਿੱਚ ਨਾਮ ਜੋੜਦੀ ਹੈ। ਨਾਮ ਬਦਲ ਕੇ ਫਾਈਲ ਬਦਲਣਾ ਦੋਵੇਂ ਡਾਇਰੈਕਟਰੀਆਂ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਸਟਿੱਕੀ-ਬਿੱਟ ਨਿਯਮਾਂ ਨੂੰ ਵੀ ਛੂੰਹਦਾ ਹੈ।
| Operation | What must permit it | Typical failure message |
|---|---|---|
| Append to an existing log | File write access, path traversal | Permission denied on the file |
| Create a missing log | Directory write and search access | Permission denied on the path |
| Rename a replacement into place | Both directories, plus sticky restrictions | Permission denied or operation not permitted |
ਪਹਿਲਾਂ ਹੀ ਖੁੱਲ੍ਹਿਆ ਡਿਸਕ੍ਰਿਪਟਰ ਚੌਥੀ ਸਥਿਤੀ ਜੋੜਦਾ ਹੈ। ਪ੍ਰਕਿਰਿਆ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਛੱਡਣ ਤੋਂ ਪਹਿਲਾਂ ਖੋਲ੍ਹਿਆ ਲਿਖਣ ਹੈਂਡਲ ਰੱਖ ਸਕਦੀ ਹੈ ਅਤੇ ਫਿਰ ਵੀ ਆਪਣੀ ਬਾਅਦ ਦੀ ਪਛਾਣ ਵਿੱਚ ਉਹੀ ਰਾਹ ਦੁਬਾਰਾ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ ਹੋ ਸਕਦੀ ਹੈ। ਸਫਲ ਜੋੜ ਅਤੇ ਅਸਫਲ ਬਣਤਰ ਦੋਵੇਂ ਇੱਕੋ ਪਲ, ਇੱਕੋ ਪ੍ਰਕਿਰਿਆ ਲਈ ਸੱਚ ਹੋ ਸਕਦੇ ਹਨ।
ਡਿਫਾਲਟ ACL ਵਿਰਾਸਤ ਵਿੱਚ ਮਿਲਦੇ ਹਨ, ਉਹ ਦਿੰਦੇ ਨਹੀਂ
ਡਿਫਾਲਟ ਅਗੇਤਰ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੀ ਐਂਟਰੀ ਦੱਸਦੀ ਹੈ ਕਿ ਨਵੀਆਂ ਵਸਤੂਆਂ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਕੀ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦੀਆਂ ਹਨ। ਇਹ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਆਪ ਕੁਝ ਨਹੀਂ ਦਿੰਦੀ, ਅਤੇ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਫਾਈਲ ਦਾ ACL ਠੀਕ ਨਹੀਂ ਕਰਦੀ।
namei -l /var/log/openvpn/server.log
getfacl -p /var/log/openvpn
getfacl -p /var/log/openvpn/server.log
ਪਹੁੰਚ ਐਂਟਰੀਆਂ ਡਿਫਾਲਟ ਤੋਂ ਵੱਖਰੀਆਂ ਪੜ੍ਹੋ, ਅਤੇ ਮਾਸਕ ਪੜ੍ਹੋ। ਪੂਰੇ ਅਧਿਕਾਰ ਗਿਣਾਉਣ ਵਾਲੀ ਨਾਮਿਤ ਐਂਟਰੀ ਵੀ ਮਾਸਕ ਨਾਲ ਸੀਮਿਤ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਪ੍ਰਭਾਵੀ ਟਿੱਪਣੀ ਪਹਿਲੀ ਲਾਈਨ ਦੇ ਅੱਖਰਾਂ ਨਾਲੋਂ ਵੱਧ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਕਨਫਿਗਰੇਸ਼ਨ ਦੇ ਰਾਹ ਦੀ ਥਾਂ ਹੱਲ ਕੀਤਾ ਰਾਹ ਵਰਤੋ। ਸਿਮਲਿੰਕ, ਮਾਊਂਟ ਬਿੰਦੂ ਜਾਂ ਘੁਮਾਈ ਡਾਇਰੈਕਟਰੀ ਅਸਲ ਫਾਈਲ ਨੂੰ ਉਸ ਥਾਂ ਰੱਖ ਸਕਦੇ ਹਨ ਜਿੱਥੇ ਤੁਹਾਡੀ ਦਿੱਤੀ ਇਜਾਜ਼ਤ ਕਦੇ ਨਹੀਂ ਪਹੁੰਚਦੀ। ਪਹਿਲਾਂ ਨਾਮ ਸੰਦ ਨਾਲ ਰਾਹ ਚੱਲੋ, ਫਿਰ ਹਰ ਪੱਧਰ ਦੀ ਸੰਬੰਧਿਤ ਖਾਤੇ ਨਾਲ ਤੁਲਨਾ ਕਰੋ। ਉੱਪਰਲੇ ਪੱਧਰ ਦੀ ਡਾਇਰੈਕਟਰੀ ਦਾ ਅੰਦਾਜ਼ਾ ਲਾਉਣਾ ਹੀ ਸੁਧਾਰ ਦੇ ਇੱਕ ਪੱਧਰ ਬਹੁਤ ਉੱਚਾ ਉਤਰਨ ਦਾ ਤਰੀਕਾ ਹੈ।
ਉਸ ਪਲ ਕੌਣ ਲਿਖਦਾ ਹੈ ਪਛਾਣੋ
ਕੁਝ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਸੇਵਾ ਇਕਾਈ, ਉਸ ਦੇ ਡਰਾਪ-ਇਨ ਅਤੇ ਡੈਮਨ ਦੀਆਂ ਆਪਣੀਆਂ ਖਾਤਾ ਸੈਟਿੰਗਾਂ ਜਾਂਚੋ। ਜੋੜਨ ਵਾਲੀ ਪ੍ਰਕਿਰਿਆ ਅਤੇ ਦੁਬਾਰਾ ਬਣਾਉਣ ਵਾਲੀ ਪ੍ਰਕਿਰਿਆ ਵੱਖਰੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ: ਰੋਟੇਸ਼ਨ ਸਹਾਇਕ, ਸਥਿਤੀ ਲੇਖਕ ਅਤੇ ਵੈੱਬ ਪਾਠਕ ਪਛਾਣ ਘੱਟ ਹੀ ਸਾਂਝੀ ਕਰਦੇ ਹਨ।
root ਸ਼ੈੱਲ ਤੋਂ ਚਲਾਇਆ ਟੈਸਟ ਪਾਬੰਦੀਸ਼ੁਦਾ ਸੇਵਾ ਨੂੰ ਦੁਬਾਰਾ ਨਹੀਂ ਬਣਾਉਂਦਾ, ਅਤੇ ਸੇਵਾ ਅਸਫਲ ਹੁੰਦੀ ਰਹਿੰਦਿਆਂ ਇਹ ਸਫਲ ਹੋਵੇਗਾ। ਅਸਫਲ ਕਾਰਵਾਈ ਨੂੰ ਉਸੇ ਇਕਾਈ ਹੇਠ, ਉਸੇ ਖਾਤੇ ਅਤੇ ਉਸੇ ਸੈਂਡਬਾਕਸ ਸੈਟਿੰਗਾਂ ਨਾਲ ਦੁਬਾਰਾ ਬਣਾਓ। ਜੇ ਨਾ ਕਰ ਸਕੋ, ਇਕਾਈ ਨੂੰ ਅਸਥਾਈ ਸ਼ੈੱਲ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਇਹ ਜੋ ਪਛਾਣ ਦੱਸਦੀ ਹੈ ਉਹ ਜਾਂਚੋ। ਬਾਕੀ ਸਭ ਕੁਝ ਸੇਵਾ ਨਹੀਂ, ਤੁਹਾਡੇ ਟਰਮੀਨਲ ਨੂੰ ਮਾਪਦਾ ਹੈ।
ਜੇ ਬਣਤਰ ਸੱਚਮੁੱਚ ਲੋੜੀਂਦੀ ਹੈ, ਲੇਖਕ ਨੂੰ ਸਮਰਪਿਤ ਲੌਗ ਡਾਇਰੈਕਟਰੀ ਤੱਕ ਪਹੁੰਚ ਦਿਓ ਅਤੇ ਖਪਤਕਾਰਾਂ ਲਈ ਪੜ੍ਹਨ ਪਹੁੰਚ ਵੱਖਰੀ ਰੱਖੋ। ਇੱਕ ਲੌਗਿੰਗ ਕਾਲ ਪੂਰੀ ਕਰਨ ਲਈ ਸਾਂਝਾ ਖਾਤਾ ਜਾਂ ਪੂਰਾ ਐਪਲੀਕੇਸ਼ਨ ਰੁੱਖ ਲਿਖਣਯੋਗ ਬਣਾਉਣਾ ਛੋਟੀ ਸਮੱਸਿਆ ਨੂੰ ਵੱਡੀ ਨਾਲ ਬਦਲਦਾ ਹੈ।
ਦੁਬਾਰਾ ਲਿਆਏ ਬਿਨਾਂ ਘੁਮਾਓ
ਜੋ ਫਾਈਲ ਦੁਬਾਰਾ ਬਣਾਉਂਦਾ ਹੈ ਉਹੀ ਅਗਲੇ ਚੱਕਰ ਲਈ ਉਸ ਦਾ ਮਾਲਕ ਅਤੇ ਮੋਡ ਤੈਅ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਸੁਧਾਰ ਨੂੰ ਰੋਟੇਸ਼ਨ ਕਨਫਿਗਰੇਸ਼ਨ ਨਾਲ ਤਾਲਮੇਲ ਕਰੋ। ਕਿਸੇ ਹੋਰ ਖਾਤੇ ਹੇਠ ਜਾਂ ਨਵੇਂ ACL ਨਾਲ ਬਣਾਇਆ ਬਦਲ ਸਫਲ ਸੁਧਾਰ ਤੋਂ ਬਾਅਦ ਅਸਫਲਤਾ ਵਾਪਸ ਲਿਆਉਂਦਾ ਹੈ।
ਮੋਡ ਅਤੇ ਸਮੂਹ ਬਣਤਰ ਵੇਲੇ ਸੈੱਟ ਕਰੋ, ਬਾਅਦ ਵਿੱਚ ਨਹੀਂ, ਅਤੇ ਅਗਲੀ ਜੋੜ ਦੀ ਥਾਂ ਅਗਲਾ ਰੋਟੇਸ਼ਨ ਪਰਖੋ। ਜੋੜ ਸਿਰਫ਼ ਪਹਿਲਾਂ ਪਾਸ ਹੋਏ ਟੈਸਟ ਨੂੰ ਦੁਹਰਾਉਂਦੀ ਹੈ। ਜੇ ਰੋਟੇਸ਼ਨ ਸੰਦ ਕ੍ਰਿਏਟ-ਮੋਡ ਸੈਟਿੰਗ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਬਣਤਰ ਤੋਂ ਬਾਅਦ chmod ਦੀ ਥਾਂ ਉਹ ਵਰਤੋ। ਬਣਤਰ ਅਤੇ chmod ਵਿਚਕਾਰਲਾ ਵਕਫ਼ ਹੀ ਅਗਲੀ ਲਿਖਤ ਅਸਫਲ ਹੋ ਸਕਣ ਦਾ ਠੀਕ ਪਲ ਹੈ।
ਜਦੋਂ ਕੱਟਣਾ ਫਿਰ ਵੀ ਅਸਫਲ ਹੋਵੇ, ਇਜਾਜ਼ਤਾਂ ਜੋੜਨਾ ਬੰਦ ਕਰੋ
ਤੁਸੀਂ ਲਿਖ ਸਕਦੇ ਹੋ ਅਜਿਹੀ ਫਾਈਲ ਕੱਟਣ ਦੀ ਅਸਫਲਤਾ ਡਾਇਰੈਕਟਰੀ ਇਜਾਜ਼ਤਾਂ ਨਾਲ ਵਿਆਖਿਆ ਨਹੀਂ ਹੁੰਦੀ, ਅਤੇ ਉਹ ਹੋਰ ਜੋੜਨ ਨਾਲ ਮਦਦ ਨਹੀਂ ਹੋਵੇਗੀ। ਇਸ ਦੀ ਥਾਂ ਗੁਣ ਅਤੇ ਪਾਬੰਦੀ ਵੇਖੋ: append-only ਗੁਣ ਸਿਰਫ਼ ਜੋੜ ਮੋਡ ਵਿੱਚ ਲਿਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਸਿਰਫ਼-ਪੜ੍ਹਨ ਮਾਊਂਟ ਜਾਂ ਸੇਵਾ ਸੈਂਡਬਾਕਸ ACL ਵੱਲੋਂ ਸਵੀਕਾਰੀ ਕਾਰਵਾਈ ਨੂੰ ਨਾਮਨਜ਼ੂਰ ਕਰ ਸਕਦੇ ਹਨ।
ਇਕਾਈ ਦੀਆਂ ਫਾਈਲਸਿਸਟਮ ਪਾਬੰਦੀਆਂ ਅਤੇ ਰਾਹ ਦੇ ਮਾਊਂਟ ਵਿਕਲਪ ਜਾਂਚੋ, ਫਿਰ ਅਸਫਲ ਹੋਈ ਠੀਕ ਕਾਰਵਾਈ ਦੁਬਾਰਾ ਬਣਾਓ। ਜਿਸ ਇਜਾਜ਼ਤ ਨੂੰ ਕਦੇ ਪੁੱਛਿਆ ਹੀ ਨਹੀਂ ਗਿਆ, ਉਸ ਨੂੰ ਵਧਾਉਣਾ ਸਿਰਫ਼ ਇਹ ਲੁਕਾਉਂਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਪਾਬੰਦੀ ਅਸਲ ਸੀ। ਸੁੱਟਣਯੋਗ ਇਕਾਈ ਵਿੱਚ ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਪਾਬੰਦੀ ਹਟਾਓ, ਅਤੇ ਕੋਈ ਪੱਕੀ ਤਬਦੀਲੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹ ਵਾਪਸ ਲਿਆਓ।