ಎಲ್ಲರಿಗು ನಮಸ್ಖರ. ನಾವು ಸಕ್ರಿಯವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೇವೆ ಮತ್ತು ಈಗಾಗಲೇ ಜನವರಿಯಲ್ಲಿ ಅನೇಕ ಶಕ್ತಿಶಾಲಿ ಉಡಾವಣೆಗಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತಿದ್ದೇವೆ. ಇತರರ ಪೈಕಿ, ಪ್ರತಿಯೊಬ್ಬರ ನೆಚ್ಚಿನ ಕೋರ್ಸ್ನ ಹೊಸ ಸ್ಟ್ರೀಮ್ಗಾಗಿ ದಾಖಲಾತಿಯನ್ನು ಘೋಷಿಸಲಾಗಿದೆ. . ಬಿಡುಗಡೆಯ ನಿರೀಕ್ಷೆಯಲ್ಲಿ, ನಾವು ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ ಉಪಯುಕ್ತ ವಸ್ತುಗಳ ಅನುವಾದಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತೇವೆ.

ಫೈಲ್ ಅನುಮತಿಗಳು SUID ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ಗಳಿಗೆ ಸುರಕ್ಷಿತ ಪರ್ಯಾಯವನ್ನು ನೀಡುತ್ತವೆ, ಆದರೆ ಮೊದಲಿಗೆ ಸ್ವಲ್ಪ ಗೊಂದಲಮಯವಾಗಿ ಕಾಣಿಸಬಹುದು.
ಬೈನರಿಗಳು ಎಂದು ನಮಗೆಲ್ಲರಿಗೂ ತಿಳಿದಿದೆ ಇವೆ . ಅದೃಷ್ಟವಶಾತ್, ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಕೆಲವು ಸೀಮಿತ ಸವಲತ್ತುಗಳ ಅಗತ್ಯವಿದ್ದರೆ, ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಮಾರ್ಗವಿದೆ .
ಮೇಲಿನ ಲೇಖನವನ್ನು ವಿವರವಾಗಿ ಓದುವುದನ್ನು ತಪ್ಪಿಸಲು ನೀವು ಬಯಸಿದರೆ ನಾನು ನಿಮಗೆ ಸ್ವಲ್ಪ ಸಮಯವನ್ನು ಉಳಿಸುತ್ತೇನೆ: ಮೂಲಭೂತವಾಗಿ, ಫೈಲ್ ಅನುಮತಿಗಳು ರೂಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಕೆಲವು ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಏನನ್ನಾದರೂ ಮಾಡಲು ಅನುಮತಿಸಲಾಗಿದೆ, ಸೀಮಿತವಾಗಿದೆ ಅವರು ಸವಲತ್ತುಗಳನ್ನು ಕೈಬಿಟ್ಟಾಗ ಮತ್ತು ಸವಲತ್ತು ಇಲ್ಲದ ಬಳಕೆದಾರರಿಂದ ನಡೆಸಲ್ಪಡುತ್ತಾರೆ. ಇದರರ್ಥ ಆಕ್ರಮಣಕಾರರು ಬಫರ್ ಓವರ್ಫ್ಲೋ ಅಥವಾ ಇತರ ಶೋಷಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಕ್ರಿಯೆಯನ್ನು ರಾಜಿ ಮಾಡಿಕೊಳ್ಳಲು ನಿರ್ವಹಿಸಿದರೆ, ಪ್ರಕ್ರಿಯೆಗೆ ನಿಜವಾಗಿ ಅಗತ್ಯವಿರುವ ಕೆಲವು ಕನಿಷ್ಠ ಸವಲತ್ತುಗಳನ್ನು ಹೊರತುಪಡಿಸಿ ಬೇರೆ ಯಾವುದರ ಲಾಭವನ್ನು ಪಡೆಯಲು ಅವರಿಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.
ಸಾಮಾನ್ಯವಾಗಿ ಯಾವಾಗಲೂ ರೂಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸೇವೆಗಳಿಗೆ ಅನುಮತಿಗಳು ಉತ್ತಮವಾಗಿವೆ, ಆದರೆ ಆಜ್ಞಾ ಸಾಲಿನ ಉಪಯುಕ್ತತೆಗಳ ಬಗ್ಗೆ ಏನು? ಅದೃಷ್ಟವಶಾತ್, ನೀವು ಸರಿಯಾದ ಉಪಯುಕ್ತತೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿದ್ದರೆ ಇದನ್ನು ಸಹ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ನೀವು ಬಳಸಿದರೆ Ubuntu, ಉದಾಹರಣೆಗೆ, ನಿಮಗೆ ಒಂದು ಪ್ಯಾಕೇಜ್ ಅಗತ್ಯವಿದೆ libcap2-bin. ನೀವು ಪುರಾತನವಲ್ಲದ ಕರ್ನಲ್ ಅನ್ನು ಸಹ ಚಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ (ಆವೃತ್ತಿಯಿಂದ 2.6.24).
ಈ ಕಾರ್ಯಗಳು SUID ಬಿಟ್ ಅನ್ನು ಹೊಂದಿಸುವಂತೆಯೇ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗಳೊಂದಿಗೆ ಅನುಮತಿಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ನಿರ್ದಿಷ್ಟ ಅನುಮತಿಗಳ ಗುಂಪಿಗೆ ಮಾತ್ರ. ಉಪಯುಕ್ತತೆ setcap ಫೈಲ್ನಿಂದ ಅನುಮತಿಗಳನ್ನು ಸೇರಿಸಲು ಮತ್ತು ತೆಗೆದುಹಾಕಲು ಬಳಸಲಾಗುತ್ತದೆ.
ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಅನುಮತಿಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು ಮೊದಲ ಹಂತವಾಗಿದೆ. ಈ ಲೇಖನದ ಸಲುವಾಗಿ, ನೆಟ್ವರ್ಕ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಟೂಲ್ ಎಂದು ಕರೆಯಲಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ tracewalk, ಇದು ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ . ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರೂಟ್ ಆಗಿ ರನ್ ಮಾಡುವ ಅಗತ್ಯವಿರುತ್ತದೆ, ಆದರೆ ವೀಕ್ಷಿಸುವಾಗ ಅನುಮತಿ ಮಾತ್ರ ಅಗತ್ಯವಿದೆ ಎಂದು ಅದು ತಿರುಗುತ್ತದೆ CAP_NET_RAW.
ನೀವು ಬೈನರಿ ಇರುವ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿದ್ದೀರಿ ಎಂದು ಊಹಿಸಿಕೊಳ್ಳಿ tracewalk, ನೀವು ಈ ರೀತಿಯ ಅನುಮತಿಯನ್ನು ಸೇರಿಸಬಹುದು:
sudo setcap cap_net_raw=eip tracewalk ಸದ್ಯಕ್ಕೆ ಪ್ರತ್ಯಯವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ =eip ಪರಿಹಾರಕ್ಕಾಗಿ, ನಾನು ಅದರ ಬಗ್ಗೆ ಒಂದೆರಡು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮಾತನಾಡುತ್ತೇನೆ. ಅನುಮತಿಯ ಹೆಸರು ಸಣ್ಣ ಅಕ್ಷರದಲ್ಲಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ನೀವು ಅನುಮತಿಗಳನ್ನು ಸರಿಯಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ್ದೀರಾ ಎಂದು ನೀವು ಈಗ ಪರಿಶೀಲಿಸಬಹುದು:
setcap -v cap_new_raw=eip tracewalkಅಥವಾ ನೀಡಲಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಎಲ್ಲಾ ಅನುಮತಿಗಳನ್ನು ನೀವು ಪಟ್ಟಿ ಮಾಡಬಹುದು:
getcap tracewalk
ಉಲ್ಲೇಖಕ್ಕಾಗಿ, ನೀವು ಇದರೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಎಲ್ಲಾ ಅನುಮತಿಗಳನ್ನು ಸಹ ತೆಗೆದುಹಾಕಬಹುದು:
setcap -r tracewalkಈ ಹಂತದಲ್ಲಿ, ನೀವು ಸವಲತ್ತುಗಳಿಲ್ಲದ ಬಳಕೆದಾರರಂತೆ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಮತ್ತು ಇದು ಕಚ್ಚಾ ಸಾಕೆಟ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಆದರೆ ರೂಟ್ ಬಳಕೆದಾರರು ಹೊಂದಿರುವ ಯಾವುದೇ ಇತರ ಸವಲತ್ತುಗಳನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ.
ಹಾಗಾದರೆ ಈ ವಿಚಿತ್ರ ಪ್ರತ್ಯಯದ ಅರ್ಥವೇನು? =eip? ಇದಕ್ಕೆ ಅನುಮತಿಗಳ ಸ್ವರೂಪದ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ತಿಳುವಳಿಕೆ ಅಗತ್ಯವಿದೆ. ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯು ಮೂರು ಸೆಟ್ ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿದೆ - ಪರಿಣಾಮಕಾರಿ, ಆನುವಂಶಿಕ ಮತ್ತು ಅನುಮತಿಸಲಾಗಿದೆ:
- ಪರಿಣಾಮಕಾರಿ ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ನಿಜವಾಗಿ ಏನು ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಅನುಮತಿಗಳು. ಉದಾಹರಣೆಗೆ, ಇದು ಕಚ್ಚಾ ಸಾಕೆಟ್ಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ
CAP_NET_RAWಪರಿಣಾಮಕಾರಿ ಸೆಟ್ನಲ್ಲಿ ಇಲ್ಲ. - ಲಭ್ಯವಿದೆ ಅನುಮತಿಗಳು ಸೂಕ್ತವಾದ ಕರೆಯನ್ನು ಬಳಸಿಕೊಂಡು ವಿನಂತಿಸಿದರೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೊಂದಲು ಅನುಮತಿಸಲಾಗಿದೆ. ಹೇಳಲಾದ ಅನುಮತಿಯನ್ನು ಕೋರಲು ನಿರ್ದಿಷ್ಟವಾಗಿ ಬರೆಯದ ಹೊರತು ಅವರು ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿಜವಾಗಿ ಏನನ್ನೂ ಮಾಡದಂತೆ ತಡೆಯುತ್ತಾರೆ. ಇದು ನಿಜವಾಗಿಯೂ ಅಗತ್ಯವಿರುವ ಅವಧಿಗೆ ಮಾತ್ರ ಪರಿಣಾಮಕಾರಿ ಸೆಟ್ಗೆ ನಿರ್ಣಾಯಕ ಅನುಮತಿಗಳನ್ನು ಸೇರಿಸಲು ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ.
- ಅನುವಂಶಿಕ ಅನುಮತಿಗಳು ಮೊಟ್ಟೆಯಿಟ್ಟ ಮಕ್ಕಳ ಪ್ರಕ್ರಿಯೆಯ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸೆಟ್ನಲ್ಲಿ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯಬಹುದಾದವುಗಳಾಗಿವೆ. ಶಸ್ತ್ರಚಿಕಿತ್ಸೆಯ ಸಮಯದಲ್ಲಿ
fork()ಅಥವಾclone()ಮಗುವಿನ ಪ್ರಕ್ರಿಯೆಗೆ ಯಾವಾಗಲೂ ಪೋಷಕ ಪ್ರಕ್ರಿಯೆಯ ಅನುಮತಿಗಳ ನಕಲನ್ನು ನೀಡಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಅದು ಆ ಹಂತದಲ್ಲಿ ಅದೇ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತದೆ. ಯಾವಾಗ ಒಂದು ಆನುವಂಶಿಕ ಸೆಟ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆexec()(ಅಥವಾ ಸಮಾನ) ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಅನ್ನು ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಯಿಸಲು ಕರೆಯಲಾಗುತ್ತದೆ. ಈ ಹಂತದಲ್ಲಿ, ಹೊಸ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಬಳಸಲಾಗುವ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸೆಟ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಕ್ರಿಯೆಯ ಲಭ್ಯವಿರುವ ಸೆಟ್ ಅನ್ನು ಅನುವಂಶಿಕ ಸೆಟ್ನಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ.
ಆದ್ದರಿಂದ ಉಪಯುಕ್ತತೆ setcap ಕೊಟ್ಟಿರುವ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಗಾಗಿ ಈ ಮೂರು ಸೆಟ್ಗಳ ಅನುಮತಿಗಳನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಸೇರಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಫೈಲ್ ಅನುಮತಿಗಳಿಗಾಗಿ ಗುಂಪುಗಳ ಅರ್ಥವನ್ನು ಸ್ವಲ್ಪ ವಿಭಿನ್ನವಾಗಿ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ:
- ಲಭ್ಯವಿದೆ ಫೈಲ್ ಅನುಮತಿಗಳು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗೆ ಯಾವಾಗಲೂ ಲಭ್ಯವಿರುತ್ತವೆ, ಅದನ್ನು ಕರೆಯುವ ಪೋಷಕ ಪ್ರಕ್ರಿಯೆಯು ಅವುಗಳನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೂ ಸಹ. ಅವುಗಳನ್ನು "ಬಲವಂತದ" ಪರವಾನಗಿಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತಿತ್ತು.
- ಪಿತ್ರಾರ್ಜಿತ ಫೈಲ್ ಅನುಮತಿಗಳು ಹೆಚ್ಚುವರಿ ಮುಖವಾಡವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತವೆ, ಇದನ್ನು ಕರೆ ಪ್ರಕ್ರಿಯೆಯ ಸೆಟ್ನಿಂದ ಅನುಮತಿಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಸಹ ಬಳಸಬಹುದು. ಅವರು ಕರೆ ಪ್ರಕ್ರಿಯೆಯ ಆನುವಂಶಿಕ ಸೆಟ್ಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ ಅನ್ವಯಿಸುತ್ತಾರೆ, ಆದ್ದರಿಂದ ಅನುಮತಿಯು ಎರಡೂ ಸೆಟ್ಗಳಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ಮಾತ್ರ ಆನುವಂಶಿಕವಾಗಿರುತ್ತದೆ.
- ಪರಿಣಾಮಕಾರಿ ಫೈಲ್ ಅನುಮತಿಗಳು ವಾಸ್ತವವಾಗಿ ಕೇವಲ ಒಂದು ಬಿಟ್, ಸೆಟ್ ಅಲ್ಲ, ಮತ್ತು ಹೊಂದಿಸಿದರೆ, ಲಭ್ಯವಿರುವ ಸಂಪೂರ್ಣ ಸೆಟ್ ಅನ್ನು ಹೊಸ ಪ್ರಕ್ರಿಯೆಯ ಪರಿಣಾಮಕಾರಿ ಸೆಟ್ಗೆ ನಕಲಿಸಲಾಗುತ್ತದೆ ಎಂದರ್ಥ. ವಿನಂತಿಸಲು ನಿರ್ದಿಷ್ಟವಾಗಿ ಬರೆಯದಿರುವ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಅನುಮತಿಗಳನ್ನು ಸೇರಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದು. ಇದು ಒಂದು ಬಿಟ್ ಆಗಿರುವುದರಿಂದ, ನೀವು ಯಾವುದೇ ಅನುಮತಿಗಾಗಿ ಹೊಂದಿಸಿದರೆ, ಅದನ್ನು ಎಲ್ಲಾ ಅನುಮತಿಗಳಿಗೆ ಹೊಂದಿಸಬೇಕು. ನೀವು ಇದನ್ನು ಲೆಗಸಿ ಬಿಟ್ ಎಂದು ಭಾವಿಸಬಹುದು ಏಕೆಂದರೆ ಅನುಮತಿಗಳನ್ನು ಬೆಂಬಲಿಸದ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಂದ ಬಳಸಲು ಅನುಮತಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
ಮೂಲಕ ಅನುಮತಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಾಗ setcap ಮೂರು ಅಕ್ಷರಗಳು e, i и p ಸಂಬಂಧಿಸಿದೆ ಪರಿಣಾಮಕಾರಿ, ಆನುವಂಶಿಕ ಮತ್ತು ಪ್ರವೇಶಿಸಬಹುದಾದ ಕ್ರಮವಾಗಿ ಹೊಂದಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ಹಿಂದಿನ ವಿವರಣೆ:
sudo setcap cap_net_raw=eip tracewalk ... ನಿರ್ಣಯವನ್ನು ಸೂಚಿಸುತ್ತದೆ CAP_NET_RAW ಲಭ್ಯವಿರುವ ಮತ್ತು ಆನುವಂಶಿಕ ಸೆಟ್ಗಳಿಗೆ ಸೇರಿಸಬೇಕು ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಬಿಟ್ ಅನ್ನು ಸಹ ಹೊಂದಿಸಬೇಕು. ಇದು ಫೈಲ್ನಲ್ಲಿ ಹಿಂದೆ ಹೊಂದಿಸಲಾದ ಯಾವುದೇ ಅನುಮತಿಗಳನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ. ಏಕಕಾಲದಲ್ಲಿ ಬಹು ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸಲು, ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಪಟ್ಟಿಯನ್ನು ಬಳಸಿ:
sudo setcap cap_net_admin,cap_net_raw=eip tracewalkಈ ಎಲ್ಲವನ್ನು ಹೆಚ್ಚು ವಿವರವಾಗಿ ಚರ್ಚಿಸುತ್ತದೆ, ಆದರೆ ಆಶಾದಾಯಕವಾಗಿ ಈ ಪೋಸ್ಟ್ ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಏನು ನಡೆಯುತ್ತಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಲಕ್ಷಿಸಿದೆ. ನಮೂದಿಸಲು ಕೆಲವು ಎಚ್ಚರಿಕೆಗಳು ಮತ್ತು ತಂತ್ರಗಳು ಮಾತ್ರ ಉಳಿದಿವೆ.
ಮೊದಲಿಗೆ, ಫೈಲ್ ಸಾಮರ್ಥ್ಯಗಳು ಸಿಮ್ಲಿಂಕ್ಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ - ನೀವು ಅವುಗಳನ್ನು ಬೈನರಿ ಫೈಲ್ಗೆ ಅನ್ವಯಿಸಬೇಕು (ಅಂದರೆ ಸಿಮ್ಲಿಂಕ್ನ ಗುರಿ).
ಎರಡನೆಯದಾಗಿ, ಅವರು ವ್ಯಾಖ್ಯಾನಿಸಿದ ಸ್ಕ್ರಿಪ್ಟ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ನೀವು ಅನುಮತಿಯನ್ನು ನಿಯೋಜಿಸಲು ಬಯಸುವ ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಹೊಂದಿದ್ದರೆ, ನೀವು ಅದನ್ನು ಪೈಥಾನ್ ಇಂಟರ್ಪ್ರಿಟರ್ಗೆ ನಿಯೋಜಿಸಬೇಕು. ನಿಸ್ಸಂಶಯವಾಗಿ ಇದು ಸಂಭಾವ್ಯ ಭದ್ರತಾ ಸಮಸ್ಯೆಯಾಗಿದೆ ಏಕೆಂದರೆ ಆ ಇಂಟರ್ಪ್ರಿಟರ್ನೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಎಲ್ಲಾ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಅನುಮತಿಯನ್ನು ಹೊಂದಿರುತ್ತವೆ, ಆದರೂ ಇದು ಇನ್ನೂ SUID ಮಾಡುವುದಕ್ಕಿಂತ ಗಮನಾರ್ಹವಾಗಿ ಉತ್ತಮವಾಗಿದೆ. ಸಿ ಅಥವಾ ತತ್ಸಮಾನದಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಬರೆಯುವುದು ಸಾಮಾನ್ಯ ಪರಿಹಾರವಾಗಿದೆ, ಅದು ಅಗತ್ಯ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಕರೆಯುತ್ತದೆ. ಇದು ಬೈನರಿಯನ್ನು ಬಳಸುವ ವೈರ್ಶಾರ್ಕ್ ಬಳಸುವ ವಿಧಾನವನ್ನು ಹೋಲುತ್ತದೆ /usr/bin/dumpcap ವಿಶೇಷ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು:
$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip ಮೂರನೆಯದಾಗಿ, ನೀವು ಪರಿಸರ ವೇರಿಯಬಲ್ ಅನ್ನು ಬಳಸಿದರೆ ಫೈಲ್ ಅನುಮತಿಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ LD_LIBRARY_PATH ಸ್ಪಷ್ಟ ಭದ್ರತಾ ಕಾರಣಗಳಿಗಾಗಿ(1). ಅದೇ ಅನ್ವಯಿಸುತ್ತದೆ LD_PRELOAD, ನನಗೆ ತಿಳಿದ ಮಟ್ಟಿಗೆ.
1. ಆಕ್ರಮಣಕಾರರು ಪ್ರಮಾಣಿತ ಲೈಬ್ರರಿಗಳಲ್ಲಿ ಒಂದನ್ನು ನಿಸ್ಸಂಶಯವಾಗಿ ಬದಲಾಯಿಸಬಹುದು ಮತ್ತು ಬಳಕೆ ಮಾಡಬಹುದು LD_LIBRARY_PATHಅದರ ಲೈಬ್ರರಿಯನ್ನು ಸಿಸ್ಟಮ್ ಒಂದಕ್ಕೆ ಆದ್ಯತೆಯಾಗಿ ಕರೆಯುವಂತೆ ಒತ್ತಾಯಿಸಲು ಮತ್ತು ಆದ್ದರಿಂದ ಕರೆ ಮಾಡುವ ಅಪ್ಲಿಕೇಶನ್ನಂತೆ ಅದೇ ಸವಲತ್ತುಗಳೊಂದಿಗೆ ತನ್ನದೇ ಆದ ಅನಿಯಂತ್ರಿತ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ.
ಅಷ್ಟೇ. ಕೋರ್ಸ್ ಕಾರ್ಯಕ್ರಮದ ಕುರಿತು ಹೆಚ್ಚಿನ ವಿವರಗಳನ್ನು ಇಲ್ಲಿ ಕಾಣಬಹುದು
ಮೂಲ: www.habr.com
