루트라는 사용자 없이 postfix 설정 권한을 수정하는 방법은 무엇입니까?

루트라는 사용자 없이 postfix 설정 권한을 수정하는 방법은 무엇입니까?

Postfix설정하려고 하는데엔트 소프트웨어(임베디드 장치용 저장소).

SElinux는 관련되지 않으며 chroot는 master.cf에서 비활성화됩니다.

# postconf -n
command_directory = /opt/sbin
compatibility_level = 2
config_directory = /opt/etc/postfix
daemon_directory = /opt/libexec/postfix
data_directory = /opt/var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
default_database_type = cdb
inet_protocols = ipv4
mail_spool_directory = /opt/var/mail
manpage_directory = no
myhostname = domain.nl
mynetworks = 1.1.2.1,8.9.1.1
queue_directory = /opt/var/spool/postfix
shlib_directory = /opt/lib/postfix
smtputf8_enable = no
unknown_local_recipient_reject_code = 550

문제는 사용자 이름을 postfix set-permissions찾을 수 없다는 것입니다. root배포판에는 기본적으로 "admin"이라는 "루트" 사용자가 함께 제공됩니다. 적어도 다음과 같은 이유로 사용자 이름이 문제라고 생각합니다.

# postfix set-permissions
find: unknown user root
# ls -lah /opt/sbin/postdrop
-rwxr-xr-x    1 NewRootUser   root      246.8K Sep  8 22:33 /opt/sbin/postdrop

반품

의 도움으로https://wiki.zimbra.com/wiki/Steps_to_fix_permission_and_ownership_of_Postfix_binaries_manually_due_to_bug_on_zmfixperm차이점을 수정해 보세요( 755이미 설정됨).

# chown AdminUserName:postdrop /opt/sbin/postdrop
# chown AdminUserName:postdrop /opt/sbin/postqueue
# chmod g+s /opt/sbin/postdrop
# chmod g+s /opt/sbin/postqueue

결과:

# postfix check
postsuper: fatal: scan_dir_push: open directory defer: Permission denied

질문

postfix set-permissions사용자가 자신의 사용자 이름을 기억하도록 하는 방법은 무엇입니까 new root?

아니면 postfix set-permissions수행해야 하는 단계를 수동으로 수행하는 방법은 무엇입니까?

아니면 어디서접미사 소스 코드flag 에 대해 수행된 작업을 찾을 수 있나요 set-permissions?

답변1

root사용자 이름을 기대하고 사용하는 응용 프로그램은 시스템에 해당 사용자가 없으면 당연히 실패합니다. 그러나 동일한 UID를 가진 여러 사용자가 있을 수 있습니다. 일반적으로 사용자 이름을 바꾸면 안 되는 것처럼 동일한 UID를 가진 여러 사용자 이름으로 시스템을 구성해서는 안 됩니다 root.

username 을 사용하여 다른 UID 0 계정을 추가할 수 있습니다 root. 이렇게 하면 숫자 UID 대신 사용자 이름을 사용하는 애플리케이션과 관련된 문제가 해결될 수 있습니다. ...을 더한별명 root비밀번호 및 로그인이 비활성화된 UID 0의 경우 다음을 추가합니다 /etc/passwd.

root:x:0:0:root:/root:/bin/false

전체 구문은 다음에 설명되어 있습니다.man 5 passwd.

답변2

root먼저, 사용자 이름을 바꾸는 것은 나쁜 생각이라는 다른 사람들의 말을 반복하겠습니다 . 즉, 그렇게 하기로 결심했다면...

플래그에 대한 권한을 설정하기 위해 수행된 작업을 postfix 소스 코드의 어디에서 찾을 수 있습니까?

명령은 postfix set-permissions에 의해 처리되는 것으로 보이며 postfix/conf/postfix-script다음을 호출합니다 post-install create-missing.

set-permissions|upgrade-configuration)
    $daemon_directory/post-install create-missing "$@"
    ;;

https://github.com/vdukhovni/postfix/blob/bfff4380a3b6fac2513c73531ee3a79212c08660/postfix/conf/postfix-script#L376

https://github.com/vdukhovni/postfix/blob/bfff4380a3b6fac2513c73531ee3a79212c08660/postfix/conf/post-install#L245

저장소를 검색 "root"하고 관리자 사용자 이름이 "root"가 될 것으로 예상되는 항목을 조정해야 할 수도 있습니다.

https://github.com/vdukhovni/postfix/search?p=3&q=root&unscoped_q=root

관련 정보