하나 있다설정값파일의 비트.
user@host:~$ ls -l /bin/mount
-rwsr-xr-x 1 root root 40152 May 26 19:31 /bin/mount
운영 체제에서 "마운트"를 수행하려면 왜 루트 액세스가 필요합니까?
user@host:~$ /bin/mount /dev/sdb1 /mnt
mount: only root can do that
user@host:~$ sudo /bin/mount /dev/sdb1 /mnt
user@host:~$ lsblk | grep sdb
sdb 8:16 0 102M 0 disk
└─sdb1 8:17 0 101M 0 part /mnt
내 거/etc/fstab
# / was on /dev/sda1 during installation
UUID=026bb2d9-1c0c-4163-85a1-f83b2221eb34 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=aec6b039-13b1-4568-abb1-2be1f3429325 none swap sw 0 0
답변1
유닉스에는 개념이 있다진짜그리고효과적인UID(및 해당 문제에 대한 GID).
setuid 프로그램을 실행하면,효과적인프로세스의 ID는 파일 소유자로 설정됩니다.
mount
따라서 이 경우에는효과적인ID 번호 root
. 하지만 아직 하나 남았어진짜ID user
.
passwd
또는 같은 프로그램 su
은 mount
실제 ID를 확인하여 누가 실행하고 있는지 확인하고 그에 따라 다른 조치를 취할 수 있습니다. passwd
이는 사용자가 비밀번호를 모르더라도 root
다른 사람의 비밀번호를 변경할 수 있기 때문 입니다.su
mount
사용자가 자신의 파일 시스템을 마운트할 수 있도록 하기 위해만약에그들은에 정의되어 있습니다/etc/fstab
그리고user
그들과 관련된 속성을 가지고 있습니다
예를 들어 내 데비안에는 fstab
다음이 있습니다.
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
이는 루트가 아닌 사용자가 CD/DVD를 실행 mount /dev/sr0
하거나 마운트를 시도할 수 있음을 의미합니다.mount /media/cdrom0
이는 mount
프로그램 자체에 내장된 논리로 호출자의 실제 신원을 확인합니다.