TLDR : Как изменить разрешения для всех папок на компьютере, чтобы для «других» папки теряли только читаемость? Другими словами, они сохраняют свой статус в отношении «записи» и «выполнения», но теряют возможность «чтения» в случае, если у них это было вообще?
Длинная версия : При настройке сервера (где пользователи могут использовать SSH) в первый раз, я сначала попытался выяснить, как можно создать новых пользователей, которым разрешен доступ только к их собственной папке home/username
и подпапкам.
Тем не менее, я нашел некоторые ссылки (например, этот вопрос / ответ ) онлайн, объясняющие, что это, возможно, не будет хорошей идеей, поскольку пользователям, конечно, все равно потребуется доступ к некоторым системным папкам, например usr/bin
или usr/lib
и для записи в папки, подобные tmp
. Конечно, это имеет смысл. Затем вместо этого я попытался использовать то, что находится в системных папках, но не , см. их содержание.
Более конкретно, это будет означать, что все папки в системе будут недоступны для чтения «другим», в то же время сохраняя свой исходный статус «другие» в отношении возможности записи и выполнения. Например, папка с разрешением 754
станет 750
, папка с 756
станет 752
, папка с 755
станет 751
и т. Д., А папка с 753
, 752
, 751
или 750
останутся прежними. И так далее, и тому подобное.
Таким образом, никто, кроме корня, не сможет увидеть, что находится внутри какой-либо папки, кроме их папки home/username
и подпапок, но она все еще может выполнять и писать нормально во всех системных папках, которые изначально разрешали это.
Как я могу сделать это для всех папок? Комментарии о возможных недостатках этой идеи также приветствуются.
Только двоичные объекты, открытые самим ядром, могут быть помечены как исполняемые, но не читаемые. Любой тип сценария (bash, python и т. Д.) Должен быть сначала прочитан перед выполнением. См .:
find /path/to/directory/ -type d -exec chmod o-r {} \;
должно работать. Для каждой папки find
выполняется chmod
. chmod
затем удаляет бит чтения для других.