Napisałem skrypt, który pomaga oczyścić moje pliki do pobrania i anime, ale nie będzie działał bez rootowania.
Próbowałem więc dodać go do / etc / sudoers (edytowanego przy użyciu sugestii techraf):
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias FILEPERM_CMDS = /bin/chown, /bin/chmod
# User privilege specification
root ALL=(ALL:ALL) ALL
myUsernane ALL = NOPASSWD: /media/96e60511-62ca-48ba-bccc-9b365bfcc4e5/Programs/down.sh
myUsernane ALL = NOPASSWD: /media/96e60511-62ca-48ba-bccc-9b365bfcc4e5/Programs/rehamer.sh
myUsernane ALL=(ALL) NOPASSWD: /bin/chown
myUsernane ALL=(ALL) NOPASSWD: /bin/chmod
myUsernane ALL=(ALL) NOPASSWD: FILEPERM_CMDS
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Ale to nie działa ...
Oto, co jest w skrypcie:
sudo chown -cR myUsername:users $downloads $anime >>"$default"logs/own.log 2>&1
echo owned
sudo chmod -cR 664 $anime >>"$default"logs/mod.log 2>&1
sudo chmod -cR 765 $downloads >>"$default"logs/mod.log 2>&1
sudo find $downloads $anime -type d -exec chmod a+x {} \; >>"$default"logs/mod.log 2>&1
echo moded
rm -vrf $downloads*.ignore >>"$default"logs/rm.log 2>&1
echo removed ignored files
Jeśli zostawiam sudo w skrypcie, raz prosi o hasło i działa. Jeśli usunę sudo z mojego skryptu, będzie on działał bez promowania hasła, ale wciąż będą Permissions denied
pojawiać się błędy. Jak możesz to naprawić?
sudo chmod blah blah blah
ale następnie poprosi mnie o hasło użytkownika. Użytkownik nie jest sudoerem, ale działa poprawnie jako root. Dlaczego wciąż pyta o hasło, mimo że użytkownik nie miał uprawnień roota oprócz tych poleceń?Jedną z możliwości jest sam skrypt sudo. Dodaj to do / etc / sudoers:
Następnie dodaj to na początku skryptu:
Tak długo, jak ścieżka pliku pasuje do wpisu w / etc / sudoers, powinna być w stanie transparentnie uruchomić się ponownie jako root (abyś mógł pominąć
sudo
s w pozostałej części skryptu). Jeśli z jakiegoś powodu nie pasuje, pojawi sięsudo
monit o hasło.źródło