Вы пытались удалить это со значением inode? Это объяснено в следующем учебном руководстве: Как удалить файл в Linux с пробелами
По существу Вы получаете inode файла с ls -il
(inode является первым числом в списке, затем можно использовать:
find . -inum 123456 -exec rm -i {} \;
(Замените 123456 inode числом, с которым Вы нашли ls -il
.)
Добавьте следующие строки под pam_rootok.so
строка в Вашем /etc/pam.d/su
:
auth [success=ignore default=1] pam_succeed_if.so user = martin-test
auth sufficient pam_succeed_if.so use_uid user = martin
Эти строки выполняют проверки с помощью pam_succeed_if.so
модуль. См. также синтаксис конфигурационного файла Linux-PAM для получения дополнительной информации auth
строки.
martin-test
. Если это - ничто, происходит (success=ignore
) и мы можем продолжить следующую строку для проверки текущего пользователя. Если это не будет, то следующая строка будет пропущена (default=1
) и мы можем продолжить последующие строки с обычными шагами аутентификации.martin
или нет, если это - затем система, рассматривает процесс аутентификации как успешный и возвраты (sufficient
), если это не, ничего не происходит, и мы продолжаем последующие строки с обычными шагами аутентификации.Можно также ограничить su
группе, здесь группе allowedpeople
может su
без пароля:
auth sufficient pam_succeed_if.so use_uid user ingroup allowedpeople
Если Вы не хотите изменять группы или использование sudo
, используйте pam названный модуль pam_exec
выполнить внешние сценарии на этапе pam.
Включите строку Ваш /etc/pam.d/su
после pam_rootok.so
строка:
auth sufficient pam_exec.so quiet /path/to/script
/path/to/script
имеет полномочия 755 (rwxr-xr-x) и следующее содержание:
#!/bin/bash
if [ "$PAM_TYPE" == "auth" ] && \
[ "$PAM_USER" == "martin-test" ] && \
[ "$PAM_RUSER" == "martin" ]; then
exit 0
else
exit 1
fi
Таким образом, этот сценарий выходит с успехом если su
:
martin
иmartin-test
.См.:
martin@host:~$ su - martin-test
martin-test@host:~$ exit
martin@host:~$ su - otheruser
Password: ****
otheruser@host:~$
/etc/pam.d/su
использовать pam_access
для моей ситуации?
– Martin Vegter
06.02.2014, 11:18
pam_access
не может сделать этого. Когда su
проходит стопку pam, она делает поэтому как пользователь, которого Вы изменяете на, не пользователь, от которого Вы изменяетесь. Таким образом, если Вы добавляете правило такой как + : martin : ALL
, это позволит любому изменяющемуся на martin
. Даже если Вы изменяетесь martin
кому: martin-test
, это все еще позволит любому сделать это. Необходимо проанализировать и пользователя, Вы происходите из, и пользователь, на которого Вы изменяетесь. Действительно, это точно что sudo
для...
– Patrick
13.02.2014, 00:28
Если у вас нет доступа к корневой учетной записи, но имейте пароль пользователя, который вы хотите использовать для запуска команды, вы можете выполнить следующее.
Просто установите свой открытый ключ в averalized_keys of toto
Мое простое решение:
sudo login -f martin-test
Если вы хотите избежать использования sudo любой ценой, я думаю, можно будет поместить это в сценарий:
Однако я не могу определить биты chown root
и chmod + s ToTest.sh
, чтобы это действительно работало:
#!/usr/bin/env bash
echo howdy, I am $(whoami)
sudo login -f martin-test
Я все еще работаю как обычно пользователь, как мне подсказывает эхо. И для этого по-прежнему требуется пароль sudo. Если бы он работал как root, можно было бы удалить sudo
в последней строке ...
Возможно, это лучший способ.
su
не предназначен для того, чтобы делать --sudo
.
Откройте/etc/sudoers.d/custom
и напишите следующее:
user-a ALL=(user-b:user-b) NOPASSWD:ALL
Это означает,:всякий раз, когда пользователь -a выполняет sudo -u user-b
, отпустить его, не спрашивая пароль.
Другой способ
youruserid ALL = (username) NOPASSWD: ALL
с visudo
, а затем sudo -u username bash
похоже наsu - username