я знаю, что это, наверное, очень просто, но я поискал в Интернете и не нашел
Я хочу установить пароль для папки (чтобы мог войти только тот, кто знает пароль) в Linux, используя только команду оболочки. кто-нибудь знает, как я могу это сделать?
Реальный ответ заключается в том, что использование пароля для защиты папки не работает. Стандартные разрешения Unix или расширенные разрешения все же обеспечивают разумный уровень защиты. Вы спрашиваете о конкретном решении неопределенной проблемы. Я считаю, что у вас одна из двух проблем:
В ситуации №1 у вас есть разрешения Unix через доступную вам команду chmod (1). У вас также есть несколько продвинутых приемов с командами setfacl (1) и getfacl (1). Обратите внимание, что желаемый «пароль» привязан к учетной записи, выполняющей доступ. Если вас беспокоит, что у кого-то слишком много способов использовать учетную запись (например, ssh, X11, console, serial, ftp, Subversion), узнайте о сложном мире PAM (подключаемых модулей аутентификации) и ограничьте их возможности. Если вы считаете, что используемые пароли будут слишком слабыми (например, «password123»), то PAM может обеспечить сложность и длину паролей. Короче говоря, сделайте аутентификацию для доступа к папке через метод аутентификации пользователя операционной системы. Это обеспечивает лучший учет, ограничения и возможность обновления.
Чтобы продемонстрировать команды setfacl и getfacl, рассмотрим трех пользователей: «u1», «u2» и «u3». Мы смотрим на папку «/ f», принадлежащую «u1». «u1» предоставит доступ только к «u2», оставив «u3».
u1% umask 700; mkdir /f; setfacl -m user:u2:rwx /f
u1% getfacl /f
user::rwx
user:u2:rwx <-- access granted
group::--- <-- anyone in the same group is still denied
mask::rwx
other::--- <-- everybody else is locked out too
В ситуации № 2 у вас есть злоумышленник, который может получить доступ к любой части жесткого диска в любое время. Для этого вам нужно будет использовать шифрование и устройство обратной связи. Я не буду здесь останавливаться на этой теме, поскольку она довольно сложна. Некоторые дистрибутивы (Ubuntu?) Позволяют шифровать домашние каталоги.
Защита файла паролем бесполезна, если нет способа запросить пароль у пользователя или если при монтировании файловой системы в другой системе требуется пароль. Вот почему зашифрованным флеш-накопителям трудно работать в Linux - они используют специальное программное обеспечение Windows для сбора пароля, необходимого для расшифровки устройства.
= нулевое время
Обычно вы делаете это с разрешениями группы. Вы создаете группу, добавляете пользователей в эту группу, которым вы хотите видеть эти файлы, а затем даете пользователям и группе разрешение только на чтение файла, т.е.
chmod 640 file.txt
Обновить:
Чтобы добавить группу (как root), используйте команду groupadd.
# groupadd mygroupname
Удалить:
# groupdel mygroupname
Добавление / удаление людей в / из группы:
# usermod -G mygroupname userNameToAdd
Обратите внимание: для этого необходимо быть владельцем системы. Если вы хотите сделать это специально как пользователь в системе, вам почти лучше добавить файлы в архив и передать их пароль или зашифровать файлы и поделиться ключом.
Как сказал embobo в своем комментарии, вы можете использовать gpasswd для создания администратора (ов) группы, который может добавлять / удалять людей из группы, проверьте страницу руководства по этому поводу.
Альтернативный подход - заархивировать каталог и удалить незашифрованные файлы с помощью этой команды
zip -e protected.zip directory/ && rm -rf directory/
Вам будет предложено (дважды) ввести пароль.
Вы можете снова «разблокировать» папку, разархивировав ее.
Видеть man zip
и man unzip
если это выглядит, это может быть решением