Какой механизм препятствует тому, чтобы какой-либо пользователь получил доступ к файлам какого-либо другого пользователя через корень?

Вы не можете смонтировать две файловых системы к одной точке монтирования одновременно. Это не имело бы никакого смысла: какое содержание файловой системы должно использоваться при доступе к каталогу, который является точкой монтирования для двух отдельных файловых систем?

В зависимости от Ваших потребностей это может быть столь же просто как монтирование каталогов этих двух серверов для разделения локальных каталогов и использования чего-то столь же тривиального как cp -R (или rsync) скопировать файлы.

5
07.10.2014, 11:33
3 ответа

Если первый символ имени файла доступен для печати, но он не является буквенно-цифровым или пустым, можно использовать оператор [[: punct:]] glob:

$ ls *.txt
f1.txt  f2.txt  ♫abc.txt
$ ls [[:punct:]]*.txt
♫abc.txt
-121--14997-

Настройка адреса IPv6 вручную по существу аналогична настройке адреса IPv4 вручную. Добавьте что-то подобное к /etc/network/interfaces :

iface eth0 inet6 static
    address 2001:db8:aa:bb::1a2b
    netmask 64
    gateway 2001:db8:aa:bb::1

Если вы не хотите настраивать вручную IPv6 то это намного проще: просто убедитесь, что у вас есть маршрутизатор с IPv6 подключением, который отправляет сообщения объявления маршрутизатора (RA). Они содержат все, что необходимо системе для самостоятельной настройки, если автоматическая настройка разрешена. Или они попросят вашу систему связаться с сервером DHCPv6 с указанием состояния и т.д. Они могут содержать много вариантов, но, как вы указали, это не является частью вашего вопроса.

Если вы хотите IPv6 подключение к Интернету, вы получаете IPv6 адреса от своего интернет-провайдера. Если вы хотите использовать IPv6 локально без подключения к Интернету, используйте ULA (уникальные локальные адреса). Эти адреса можно генерировать самостоятельно, следуя инструкциям в RFC, но можно также использовать такие инструменты, как [Инструменты SixXS ULA [( https://www.sixxs.net/tools/grh/ula/ ) или Уникальный локальный генератор IPv6 .

-121--118414-

Основная разница между sudo и su - это механизм, используемый для аутентификации. При использовании su пользователь должен знать пароль root (который должен быть строго охраняемым секретом), а при использовании sudo пользователь должен использовать свой собственный пароль. Для того чтобы остановить всех пользователей, вызывающих хаос, привилегии, выданные командой sudo , можно, к счастью, настроить с помощью файла /etc/sudoers .

Обе команды запускают команду от имени другого пользователя, довольно часто root .

sudo su - работает в приведенном примере, поскольку пользователь (или группа, в которой пользователь является членом) настроен в файле /etc/sudoers . То есть им разрешено использовать sudo . Вооружившись этим, они используют sudo , чтобы временно получить права root (по умолчанию, когда имя пользователя не указано) и как root запустить другую оболочку ( su - ). Теперь они имеют доступ root , не зная пароля root .

И наоборот, если не разрешить пользователю использовать sudo , то он не сможет sudo su - .

Distros обычно имеют группу (часто называемую колесом ), члены которой могут использовать sudo для выполнения всех команд. Удаление их из этой группы означает, что по умолчанию они не могут использовать sudo .

Строка в /etc/sudoers , которая делает это:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

Удаление пользователей из этой группы сделает вашу систему более безопасной, но это также приведет к тому, что вам (или другим системным администраторам) потребуется выполнять больше административных задач в системе от имени ваших пользователей.

Более разумный компромисс настроит sudo , чтобы дать вам более точный контроль над тем, кому разрешено использовать sudo , а кому нет, наряду с тем, какие команды им разрешено использовать (вместо значений по умолчанию все команды). Например,

## Allows members of the users group to mount and unmount the
## cdrom as root
%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

(полезно только при использовании предыдущей строки% wheel с комментариями или при отсутствии пользователей в группе wheel ).

Предположительно, distros не поставляется с этой более мелкой зернистой конфигурацией в качестве стандарта, поскольку невозможно прогнозировать требования администратора к своим пользователям и системе.

Итог: - узнайте подробности sudo и вы можете остановить sudo su - , разрешив другие команды, которые не дают пользователю root доступ к оболочке или команды, которые могут изменить файлы других пользователей. Следует серьезно подумать о том, кому позволено использовать sudo и на каком уровне.

ПРЕДУПРЕЖДЕНИЕ: Всегда используйте команду visudo для редактирования файла sudoers , так как он проверяет ваши изменения и пытается спасти вас от неловкой ситуации, когда неправильная настройка файла (из-за синтаксической ошибки) не позволяет использовать sudo для редактирования любых ошибок. Это особенно верно для Debian/Ubuntu и вариантов, в которых учетная запись root отключена по умолчанию.

12
27.01.2020, 20:31

Краткий ответ - это вы не можете.

Если вы позволите кому-то (E.g. Samth) в группе Sudoer, он может выдать Sudo SU - , а затем стать корнем, а затем пользователь Anoter (E.g. Wesson). Это альтернативный способ дать пароль корня на SIMTH. Однако он (Смит) может изменить root passwd.

также отмечает, что

1) необходимо указать в / etc / sudoers , как строку, такая как

%sudo   ALL=(ALL:ALL) ALL

2) Смит (в экземпляре выше) должна быть в группе sudo.

Это не настройка по умолчанию.

Вы должны полностью доверять кому-либо (Смит), чтобы дать Sudo SU - доступ.

2
27.01.2020, 20:31

Можно использовать что-то вроде SSHFS. Посмотрите, например:

https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

-121--186959-

При вводе ./remove _ cc * оболочка изменяет его на ./remove _ cc file1.txt file2.txt file3.txt и т.д. Сценарий просматривает только $1 , первый параметр (file1.txt).

Самый общий способ сделать это - закольцовывать каждый параметр по очереди. «$ @» расширяется до списка всех параметров, и мы можем использовать для , чтобы закольцевать их.

for n in "$@" ; do
    sed -ie 's/@r//g' "$n"
    ...
done

В этом конкретном случае, поскольку sed будет принимать несколько имен файлов, можно упростить:

sed -ie 's/@r//g' "$@"

Обратите внимание, что при написании сценариев оболочки важно обратить внимание на кавычки. Например, без кавычек сценарий не будет работать с файлом с именем My Text File.txt .

-121--77785-

Существуют две команды, относящиеся к привилегиям root: SUDO и SU. С помощью SUDO вы не становитесь другим пользователем (включая root). SUDO имеет заранее определенный список утвержденных команд, которые он выполняет от вашего имени (это касается того, что я спросил в комментарии о том, как вы предоставляете выбранным пользователям избирательные привилегии). Так как вы не становитесь корневым или другим пользователем, вы просто аутентифицируетесь с помощью собственного пароля.

Это неверно. Самое большое различие между su и sudo заключается в том, что вместо пароля целевого пользователя вводится собственный пароль и что sudo является более гибким. И то, и другое точка позволяет вам стать другим пользователем. su может выполнять определенную команду и sudo может запускать интерактивную оболочку, они просто имеют различные режимы по умолчанию.

Чаще всего используется группа с обычным именем wheel , которая может выполнять любую команду как любой пользователь. Иногда требуется ограничить выполнение пользователем только определенной команды в качестве определенного пользователя, и это является более гибким в отношении sudo по сравнению с su .

С SU вы фактически становитесь корневым или другим пользователем. Если вы хотите стать пользователем Боб, вам нужен пароль Боба. Для получения статуса root необходим пароль root (который будет определен в многопользовательской системе).

Вы можете стать любым пользователем с помощью sudo также с собственным паролем, при условии, что правила в /etc/sudoers будут набором для вас. sudo позволяет ограничить команду, которую пользователь может выполнить, и запрещает разглашение паролей определенных пользователей или даже отсутствие пароля для определенных пользователей, запрещающих обычные имена входа.

Если вы становитесь корневым, у вас есть доступ ко всему. Любому лицу, не уполномоченному на доступ к учетной записи другого пользователя, не будет предоставлен пароль root и не будут разрешены определения SUDO.

Все это имеет смысл, пока вы не посмотрите на что-то вроде этой ссылки , которая является учебным пособием для использования SUDO-V, а затем SUDO SU - чтобы стать root, используя только свой пароль.

Какой механизм защищает файлы пользователя от несанкционированного доступа, если любой пользователь может стать пользователем root без пароля root? Во-первых, sudo-V печатает версию двоичного файла sudo , и sudo-v проверяет кэшированные учетные данные и не имеет отношения к более поздней части.

Во-вторых, sudo su это довольно глупая вещь, потому что уже существует параметр sudo для запуска ( sudo-i ), и запуск одного средства авторизации привилегий ( sudo ) для запуска другого средства авторизации привилегий ( su ) действительно глупо.

В-третьих, "любой пользователь" должен НЕ иметь возможность стать корневым. Если они могут вся ваша система полностью незащищена. пользователь root является мощным и может делать все, что угодно, и выполнение команды как root является только одним из применений sudo , это общий инструмент авторизации, который позволяет конкретному пользователю выполнять определенную команду как конкретному пользователю.

7
27.01.2020, 20:31

Теги

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