서비스 사용자는 자신이 소유한 디렉터리에 파일을 생성/수정할 수 없습니다.

서비스 사용자는 자신이 소유한 디렉터리에 파일을 생성/수정할 수 없습니다.

제가 뭔가를 놓치고 있는 것 같아요. 크론 작업으로 생성한 스크립트를 실행할 서비스 계정을 생성했습니다. 스크립트는 처리할 파일을 감시 폴더에 연결합니다. 스크립트는 루트로 잘 실행되지만 서비스 계정을 사용하고 해당 계정에서 매시간 크론 작업을 실행하는 것이 더 낫다고 생각합니다. 이제 서비스 계정으로 파일/폴더를 만들려고 하면 권한 문제가 발생합니다.

[root@analysis ~]# ls -l /watched/robert.sicko/

total 24  
drwxrwx--- 20 srvArcherNBS srvArcherNBS 20480 May  8 11:35 XXX  
drwxrwx---  2 srvArcherNBS srvArcherNBS  4096 May  4 11:04 test

[root@analysis ~]# su -c "touch /watched/robert.sicko/test/abc.completed" srvArcherNBS

touch: cannot touch `/watched/robert.sicko/test/abc.completed': Permission denied

기타 정보. 서버는 CentOS 버전 6.10을 실행합니다. Watched, robert.sicko 및 테스트 디렉터리가 이미 존재하므로 /watched/robert.sicko/*의 소유권을 서비스 계정으로 변경했습니다.

chown -R srvArcherNBS:srvArcherNBS /watched/robert.sicko/*

/watched 디렉토리는 srvArcherNBS에 속하지 않지만 /watched 및 /watched/robert.sicko 그룹을 srvArcherNBS로 변경해도 아무 것도 변경되지 않았습니다.

[root@analysis watched]# ls -l
total 4
drwxrwx--- 4 apache archer_daemon_web_access 4096 May  4 11:04 robert.sicko

ls /watched/robert.sicko/test/abc.completed의 결과를 추가하도록 편집되었습니다.

[root@analysis /]# ls -l /watched/robert.sicko/test/abc.completed
ls: cannot access /watched/robert.sicko/test/acb.completed: No such file or directory

edit2에 이상한 점이 추가되었습니다. su로 ls를 실행하면 srvArcherNBS에 대한 권한이 거부되지만 su srvArcherNBS를 사용하면 ls를 수행할 수 있습니다.

[root@analysis robert.sicko]# pwd
/var/www/analysis/watched/robert.sicko
[root@analysis robert.sicko]# su -c "ls -la /var/www/analysis/watched/robert.sicko" srvArcherNBS
ls: cannot access /var/www/analysis/watched/robert.sicko: Permission denied
[root@analysis robert.sicko]# su srvArcherNBS
[srvArcherNBS@analysis robert.sicko]$ ls -la
total 32
drwxrwx---  4 apache       srvArcherNBS  4096 May  4 11:04 .
drwxrwx---  3 apache       srvArcherNBS  4096 Mar 27  2019 ..
drwxrwx--- 22 srvArcherNBS srvArcherNBS 20480 May  8 15:10 XXX
drwxrwx---  2 srvArcherNBS srvArcherNBS  4096 May  4 11:04 test
[srvArcherNBS@analysis robert.sicko]$

마운트 출력

[root@analysis robert.sicko]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
//prd/agtcnbs on /mnt/agtcnbs type cifs (rw             )

답변1

마침내 트리에 있는 디렉터리의 권한을 변경하여 문제를 해결했습니다.

 /var/www/analysis/watched/robert.sicko

var www다른 사람에게 r+x 권한 등을 부여해야 합니다 . rwx에 쓰려는 디렉토리의 그룹 권한을 설정했지만. 완전히 이해하지는 못하지만 여전히 크론 작업을 루트로 실행하는 것보다 더 안전해 보입니다.

관련 정보