/usr의 소유자는 루트여야 합니까?

/usr의 소유자는 루트여야 합니까?

설치 후MySQL데이터베이스에SUSE 열기/usr/bin모든 파일의 소유자가 "mysql" 그룹의 "mysql" 사용자로 변경된 것을 확인했습니다 . 어쩌면 나에게 실수가 있을 수도 있다. 최악의 문제는 /usr/bin/sudo명령입니다. 분명히 작동하지 않지만 소유권을 되찾았습니다.뿌리(로그인했습니다.뿌리) 지금 할 것입니다.

모든 파일의 소유자를 /usr/bin다음으로 변경해야 합니다.뿌리아니면 다른 프로그램이 오작동할 수 있나요? "권한" 탭에서 "UID 설정" 옵션도 표시해야 합니까 sudo?

답변1

예, 아래의 모든 파일은 /usr루트가 소유해야 합니다. 하지만 /usr/local사이트 정책에 따라 아래 파일은 루트에 속할 수도 있고 아닐 수도 있습니다. 루트에 시스템 관리자만 수정할 수 있는 파일이 있는 것은 정상입니다.

루트가 절대적으로 소유해야 하는 일부 파일이 있습니다. 그렇지 않으면 시스템이 제대로 작동하지 않습니다. 이것들은 모두설정값루트 실행 파일은 누가 호출했는지에 관계없이 루트로 실행됩니다. 일반적인 setuid 루트 바이너리에는 다음이 포함됩니다.su그리고sudo(인증 후 다른 사용자로 다른 프로그램을 실행하는 프로그램), sudoedit(임의의 프로그램을 실행하는 대신 파일을 편집하는 프로그램 sudo), 사용자 계정을 수정하는 프로그램( passwd, chsh, chfn).

또한 많은 프로그램은 추가 그룹 권한으로 실행해야 하며 해당 그룹(및 루트)이 소유하고 setgid 비트가 설정되어 있어야 합니다.

패키지 데이터베이스에서 적절한 권한을 복원할 수 있고 복원해야 합니다. 수동으로 수정하려고 하면 뭔가를 놓치고 진단하기 어려운 오류가 남게 됩니다. 다음 명령을 실행하십시오.

rpm -qa | xargs rpm --setugids --setperms

답변2

편집: 내(아마도 불완전한) 목록에서 조정하는 대신 권한과 소유권을 수정하는 방법에 대해서는 Giles의 답변을 참조하세요.

일반적으로 다른 그룹에 속하는 일부 파일이 있습니다. 내 시스템에서 가져온 내용:

$ lsb_release -d
Description:    Debian GNU/Linux 6.0.9 (squeeze)

$ find /usr/bin -not -group root -exec ls -g {} \; | awk '{print $NF,$3}'
/usr/bin/crontab crontab
/usr/bin/mlocate mlocate
/usr/bin/mutt_dotlock mail
/usr/bin/expiry shadow
/usr/bin/mail-unlock mail
/usr/bin/wall tty
/usr/bin/mail-touchlock mail
/usr/bin/bsd-write tty
/usr/bin/screen utmp
/usr/bin/dotlockfile mail
/usr/bin/chage shadow
/usr/bin/ssh-agent ssh
/usr/bin/mail-lock mail

SUID 비트가 있는 파일:

$ find /usr/bin -perm -4000
/usr/bin/newgrp
/usr/bin/sudoedit
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/passwd
/usr/bin/sudo

관련 정보