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

Вы можете попробовать следующий код python snippet

import os
import glob
files = glob.glob('*')
for file in files:
    var1 = file.find(' (')
    var2 = file.find(')')+1
    filename = file[:var1] +  file[var2:]
    os.rename(file, filename)
glob находит все файлы, которые удовлетворяют аргументу regex. Вы перебираете список и изменяете имя файла rename, меняя имя file
1
задан 1 December 2017 в 14:46

4 ответа

Как и то, что сказал @steeldriver, пользователи не должны удалять свой домашний каталог, так как /home принадлежит root. Я проверил это на своей машине Ubuntu, чтобы подтвердить, что логика держится: D

EDIT: Хорошо, вот пример:

# As root mkdir outerDir # The wrapper dir mkdir outerDir/innerDir # The directory you want the user to have access to, but not delete chown youruser:youruser outerDir/innerDir # Change ownership to your user

Поскольку /home уже принадлежит root, youruser должен иметь возможность создавать & amp; редактировать файлы и amp; такой как /home/youruser, но не удалять /home/youruser сам

Вам также необходимо следить за разрешениями. Ваш внешний каталог или /home должен быть доступен для чтения всем пользователям, но доступен только для записи root, а внутренний каталог или /home/youruser должен быть доступен для чтения и amp; доступный для записи вашим пользователем, но не другими. Пример этого с chmod:

# As root chmod 755 outerDir # Make the outer directory readable by all chmod 700 outerDir/innerDir # Make the inner directory only accesible to the user who owns it

Номера, которые я дал, находятся в порядке пользователя, группы и других. 7 означает, что он доступен для чтения, записи и выполнения. 5 означает, что он доступен для чтения и записи, а 0 означает отсутствие доступа, поэтому 755 означает, что он доступен для чтения, записи и исполнения пользователем, который владеет файлом, и читаемым и исполняемым группой, которая владеет им; все остальные; 700 означает, что он доступен для чтения, записывается и исполняется пользователем, который его владеет, и никем другим. Если вы хотите узнать больше о chmod, попробуйте это, это будет только первый результат Googling «chmod»

2
ответ дан 18 July 2018 в 02:36

Если вы хотите, чтобы у каждого из них был частный / домашний каталог, но он не мог получить доступ к другому / домашнему каталогу, сделайте «chmod 700 $ HOME», но это должно выполняться домашним каталогом каждого пользователя. Другой способ делает это с учетной записью sudo, или вы можете включить root, выполнив «sudo passwd root» после запроса настройки passwd для root, чтобы переключиться на корневую учетную запись «su», введите root passwd, тогда вы можете от root chmod каждого пользователя домашний каталог в соответствии с привилегиями и потребностями каждого. Кроме того, «chmod 700 directoryname» работает.

-2
ответ дан 18 July 2018 в 02:36

Как и то, что сказал @steeldriver, пользователи не должны удалять свой домашний каталог, так как /home принадлежит root. Я проверил это на своей машине Ubuntu, чтобы подтвердить, что логика держится: D

EDIT: Хорошо, вот пример:

# As root mkdir outerDir # The wrapper dir mkdir outerDir/innerDir # The directory you want the user to have access to, but not delete chown youruser:youruser outerDir/innerDir # Change ownership to your user

Поскольку /home уже принадлежит root, youruser должен иметь возможность создавать & amp; редактировать файлы и amp; такой как /home/youruser, но не удалять /home/youruser сам

Вам также необходимо следить за разрешениями. Ваш внешний каталог или /home должен быть доступен для чтения всем пользователям, но доступен только для записи root, а внутренний каталог или /home/youruser должен быть доступен для чтения и amp; доступный для записи вашим пользователем, но не другими. Пример этого с chmod:

# As root chmod 755 outerDir # Make the outer directory readable by all chmod 700 outerDir/innerDir # Make the inner directory only accesible to the user who owns it

Номера, которые я дал, находятся в порядке пользователя, группы и других. 7 означает, что он доступен для чтения, записи и выполнения. 5 означает, что он доступен для чтения и записи, а 0 означает отсутствие доступа, поэтому 755 означает, что он доступен для чтения, записи и исполнения пользователем, который владеет файлом, и читаемым и исполняемым группой, которая владеет им; все остальные; 700 означает, что он доступен для чтения, записывается и исполняется пользователем, который его владеет, и никем другим. Если вы хотите узнать больше о chmod, попробуйте это, это будет только первый результат Googling «chmod»

2
ответ дан 24 July 2018 в 17:36
  • 1
    Я вижу, что есть downvotes, но почему? Я не сержусь, просто хочу получить обратную связь – atoms118 26 November 2017 в 04:44
  • 2
    Проголосовать не за меня, но я думаю, что причиной этого может быть то, что вы не пишете ни слова о разрешениях, а только о собственности. Но разрешения тоже важны. Перечитайте комментарий @steeldrivers. Он писал, что /home доступен для записи только root, а не /home принадлежит root (даже если это так). Собственность и разрешение идут вместе! – mook765 26 November 2017 в 09:56
  • 3
    @ mook765 спасибо! Я отредактировал свой ответ сейчас – atoms118 26 November 2017 в 18:57

Если вы хотите, чтобы у каждого из них был частный / домашний каталог, но он не мог получить доступ к другому / домашнему каталогу, сделайте «chmod 700 $ HOME», но это должно выполняться домашним каталогом каждого пользователя. Другой способ делает это с учетной записью sudo, или вы можете включить root, выполнив «sudo passwd root» после запроса настройки passwd для root, чтобы переключиться на корневую учетную запись «su», введите root passwd, тогда вы можете от root chmod каждого пользователя домашний каталог в соответствии с привилегиями и потребностями каждого. Кроме того, «chmod 700 directoryname» работает.

-2
ответ дан 24 July 2018 в 17:36

Другие вопросы по тегам:

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