Почему мои настройки с NFS и setuid не работают в Linux

1708
Marcus Thornton

Я использую Linux. На машине AI есть такие настройки NFS в etc/exports:

/home 10.0.129.130(rw,no_root_squash) 

Я монтирую этот каталог на машине A на /home/nfs/машине B. И я установил setuid, используя chmod u+x program1.sh.

На компьютере BI нужно, чтобы пользователь xyzзапустил program1.shпривилегию пользователя root. Настройка program1.shкак ниже:

-rwsr-x--- 1 root house 1299 May 15 23:54 program1.sh 

, который содержит mkdir -p /home/nfs/house/nsx/

Я настроен xyzбыть в группе, houseчтобы xyzможно было бежать program1.sh. Однако при запуске program1.shон показывает:

mkdir: cannot create directory `/home/nfs/house/nsx/': Permission denied 

Запуск program1.shот имени root в порядке. Я не знаю, почему он не работает с пользователем xyz.

0

2 ответа на вопрос

1
grawity

From the name program.sh, I am guessing that you're trying to run an interpreted script, not an ELF binary. Linux has ignored the setuid bit on scripts since long ago, due to possible security issues (race condition between kernel checking the +s bit, and script interpreter opening the file).

If this script needs to be available to specific users, create a sudo rule in /etc/sudoers that allows this:

xyz ALL=(root:root) NOPASSWD: /usr/local/bin/program.sh 

There might be other solutions. For example, if you want to create home directories automatically (upon first login), the pam_mkhomedir.so PAM module exists for this.

0
alfasin

Because only root and user nfs have permissions on files/folders under: /home/nfs

Я установил setuid используя `chmod u + x`. Разве это не значит, что я могу запустить эту программу как root. Как и `passwd`, его привилегия -` -rwsr-xr-x`, поэтому другие пользователи могут запускать его как root. Marcus Thornton 9 лет назад 0

Похожие вопросы