Как сделать файл в домашнем каталоге пользователя в домашнем каталоге UNEESTATION для этого пользователя, но покидают домашний каталог редактируемые?

По той же причине ls -l читает / etc / passwd, именно данные связывают UID с именами. Когда ls вызывает stat (2) для файла, он получает числовой UID для владельца файла. Чтобы отобразить это как удобочитаемое имя, ему необходимо найти его в единственном месте, где есть эти ассоциации, / etc / passwd . Например, типичная первая строка в / etc / passwd - это

root:x:0:0:root:/root:/bin/bash

Когда ls -l / etc / hosts необходимо произвести вывод

-rw-r--r-- 1 root root 222 Jan 14  2013 /etc/hosts

, он должен преобразовать UID 0 в "root", так как он вызывает библиотечную процедуру, например getpwuid , которая читает / etc / passwd для обеспечения перевода. Это большая часть причины, по которой существует / etc / passwd : для предоставления таких переводов для совершенно обычных целей.

Поиск имен пользователей представляет собой не большую проблему безопасности, чем вызов localtime , чтобы ls мог сообщить вам «14 января 2013 года» в качестве времени модификации файла. Как заметил slm , нет причин держать файл открытым, поэтому он закрывается, как только его содержимое будет прочитано.

Файл / etc / passwd изначально содержал хешированные пароли в более простое время. Хэши паролей были перемещены в / etc / shadow , который обычные пользователи не могут прочитать, потому что это была дыра в безопасности. Имя / etc / passwd осталось прежним, но теперь содержит x в поле хэша бывшего пароля, которое не является допустимым хешем для любого пароля.

0
24.12.2018, 22:05
2 ответа

chmod недостаточно, так как пользователь может просто изменить режим.

Сначала запретите пользователю редактировать файл:

  • chmod go -w «-имя файла -»
  • chown «какой-то -другой -пользователь» «-имя файла -»

Теперь пользователь все еще может удалить файл, так что давайте остановим это. (файл удаляется, если он удален из содержащего его каталога. Мы должны остановить это.)

  • chown «какой-то -другой -пользователь» «-, содержащий каталог -»
  • chmod +t «-, содержащий каталог -»

Теперь сделайте так, чтобы пользователь мог писать в содержащую -директорию

  • chown «-имя пользователя -» «-, содержащий каталог -»
  • chmod g+w «-, содержащий каталог -»

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

0
28.01.2020, 02:30

Единственный известный мне способ сделать то, о чем вы просите, это использовать chattr (1 ), имя которого предполагает изменение атрибутов файлов.

В разделе атрибутов вы можете прочитать:

"Файл с атрибутом 'i' не может быть изменен :его нельзя удалить или переименовать, нельзя создать ссылку на этот файл, большую часть метаданных файла нельзя изменить, и файл нельзя открыт в режиме записи. Только суперпользователь или процесс, обладающий возможностью CAP _LINUX _IMMUTABLE, может устанавливать или очищать этот атрибут».

--практический случай:

: lsattr example.file
------------------- example.file
: ls -lh example.file 
-rw------- 1 tntx tntx 15 Dec 23 20:43 example.file
: su -
Password:
root@foo: chattr +i example.file
root@foo: exit
logout
: lsattr example.file 
----i-------------- example.file
: cat example.file 
testing chattr
: echo "adding text" >> example.file 
ksh93: example.file: cannot create [Operation not permitted]

Same with vi:
Read-only file, not written; use ! to override.
:w!
Error: example.file: Operation not permitted.

And then trying to mv:
: mv example.file example.file2 
mv: cannot move 'example.file' to 'example.file2': Operation not permitted

What about cp:
: ls -lh example.file*
-rw------- 1 tntx tntx 15 Dec 23 20:43 example.file
-rw------- 1 tntx tntx 15 Dec 23 21:02 example.file2
: /usr/bin/lsattr example.file*
----i-------------- example.file
------------------- example.file2

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

2
28.01.2020, 02:30

Теги

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