Полномочия отклонить пользователей SSH от доступа к папкам другого пользователя

Хорошо, таким образом, Вы хотите архивировать два iterables, или другими словами Вы хотите единственный цикл, выполняющий итерации по набору строк, с дополнительным счетчиком. Довольно легко реализовать счетчик.

n=0
for x in $commands; do
  mv -- "$x" "$n.jpg"
  n=$(($n+1))
done

Обратите внимание, что это только работает, если ни один из элементов, которых Вы выполняете итерации, не содержит пробела (ни globbing символы). Если Вам разделили объекты новые строки, выключаете globbing и разделяете только на новых строках.

n=0
IFS='
'; set -f
for x in $commands; do
  mv -- "$x" "$n.jpg"
  n=$(($n+1))
done
set +f; unset IFS

Если только необходимо выполнить итерации по данным однажды, цикл вокруг read (см., Почему while IFS= read используемый так часто, вместо IFS=; while read..? для большего количества объяснений).

n=0
while IFS= read -r x; do
  mv -- "$x" "$n.jpg"
  n=$(($n+1))
done <

При использовании оболочки, которая имеет массивы (удар, ksh или zsh), сохраните элементы в массиве. В zsh, любом выполнении setopt ksh_arrays к элементам массива числа от 0, или адаптируют код к нумерации элемента массива, запускающейся в 1.

commands=(
    ./01/IMG0000.jpg
    …
)
n=0
while [[ $n -lt ${#commands} ]]; do
  mv -- "${commands[$n]}" "$n.jpg"
done

3
20.06.2012, 12:01
4 ответа

Путем создания его не миром читаемый. По умолчанию это похоже так:

igalic@tynix /home % ls -lh
total 28K
drwxr-xr-x. 62 igalic igalic 4.0K Jun 20 10:24 igalic/
drwx------.  2 root   root    16K Jun  1 15:54 lost+found/
igalic@tynix /home %

Я могу отклонить любого, но меня (и корень) доступ с chmod o-rx:

igalic@tynix /home % ls -lh
total 20K
drwxr-x---. 62 igalic igalic 4.0K Jun 20 10:28 igalic/
drwx------.  2 root   root    16K Jun  1 15:54 lost+found/
igalic@tynix /home %

Это основные полномочия Unix. Можно сделать более мелкомодульные права доступа с расширенным POSIX ACLs:

igalic@tynix /home % getfacl igalic
# file: igalic
# owner: igalic
# group: igalic
user::rwx
group::r-x
other::---

Или SELinux:

drwxr-x---. igalic igalic unconfined_u:object_r:user_home_dir_t:s0 igalic/
drwx------. root   root   system_u:object_r:lost_found_t:s0 lost+found/
6
27.01.2020, 21:10
  • 1
    Спасибо за справку. Но я понял, что мой пользователь мог просто использовать что-то как chmod 0775 <myfoldername> для возврата настроек. Там какая-либо другая функция состоит в том, чтобы отклонить его из изменяющихся полномочий самого? –  John Tan 20.06.2012, 11:48
  • 2
    Вы говорите, что другие люди соединятся с Вашим пользователем? Это делает фактически невозможным для Вас запретить их доступа! –  rahmu 20.06.2012, 11:54
  • 3
    я думаю, что понимаю то, что продолжается. По-видимому, пользователь использовал команду sudo для изменения моих полномочий папки, таким образом, что она пересдана для установки по умолчанию. Похож я должен отключить пользователя из списка sudo.... –  John Tan 20.06.2012, 12:03
  • 4
    @JohnTan, Если Вы помещаете пользователя в список sudo (как в: позволяя им выполнить любую команду как любой пользователь), они могут сделать что-либо, что они хотят. Это - смысл sudo! Монетный двор –  Gilles 'SO- stop being evil' 21.06.2012, 01:29

Слова как полномочия или доступ слишком неопределенны для системы Unix. Для решения проблемы необходимо было бы изучить, как полномочиями управляют и затем определяют более точно, под чем Вы подразумеваете "не способный получить доступ к ней".

Краткий обзор системы разрешения на Unix

Существует 3 вида полномочий:

  • r: читать
  • w: записать
  • x: выполниться

Обратите внимание, что разрешение имеет особое значение для каталогов:

  • r: перечислите файлы в каталоге, например, с ls.
  • w: добавьте новые элементы к каталогу.
  • x: файлы доступа в каталоге.

Существует 3 уровня разрешения, которое можно установить:

  • пользователь (владелец файла/каталога)
  • группа
  • все

Обратите внимание, что при создании новых пользователей в системе Вас просят присвоить им группу. Причина просто для лучшего управления полномочиями.

Как знать полномочия файла

Существуют различные пути. Я думаю, что самое простое использовало бы ls -l. Пример:

$ ls -l file
-rw-r-----   1 rahmu users   406 Jun 18 13:28 file

Первый столбец указывает на полномочия.

-rw-r-----, первый бит (-) указывает, является ли файл каталогом, ссылкой или регулярным файлом. Проигнорируйте его на данный момент. Затем следующие 3 бита (rw-) укажите на полномочия уровня пользователя. Это означает пользователя rahmu имеет право на read и write этот файл. Следующие три бита (r--) полномочия уровня группы, это означает, что все пользователи, которые находятся в группе users будет иметь read доступ. У всех других пользователей не будет разрешения вообще (--). Это означает, что они не могут считать файл, записать это, ни выполнить его.

Как изменить полномочия.

Это, обычно покончили chmod утилита. Это поддерживает многих синтаксис, какой является лучшим, спорно, но следующее будет иметь большую часть смысла после вышеупомянутого объяснения:

$ chmod [who]operator[permissions] file
  • who uсер, gаукцион или others. (существует также all, для изменения всех трех уровней сразу).
  • operator + или -.
  • permission r, w или x.

Примеры:

  • chmod u-w file: удалить write разрешение для пользователя.
  • chmod a+x file: добавить execute разрешение для всех.

Как предотвратить доступ к Вашему / домой?

Как я упомянул, необходимо определить то, что Вы подразумеваете под доступом. Если то, что Вы имеете в виду, read доступ, как в Вас не хотят, чтобы они даже перечислили то, что в Вашем каталоге, затем самое легкое должно было бы снять соответствующие полномочия /home каталог. (Принятие они соединяются с отдельным пользователем).

$ chmod o-rwx ~ 
4
27.01.2020, 21:10
  • 1
    Обратите внимание, что выполнить разрешение на каталоге управляет, можно ли получить доступ к файлам в том каталоге. То, что это - разрешение для cd анекдотичный дополнительный побочный эффект. –  Gilles 'SO- stop being evil' 21.06.2012, 01:28

Каждый файл (и каталог) принадлежит пользователю и группе, всегда. Для управления управлением доступом существует три набора прав: один для пользователя файл принадлежит, один для группы, файл принадлежит и один для всех остальных (другой).

Проверьте наш корневой каталог на его полномочия, ls -l /home. Скорее всего, Ваш корневой каталог принадлежит Вашему имени пользователя, что означает, могут ли другие получить доступ к нему, зависит от прав группы и других-прав. Все, кто считал права на Вашем dir дома, могут получить список его содержания, все с исполняемыми правами могут получить доступ к файлам в том каталоге.

Чтобы быть максимально строгим устанавливает Ваши полномочия корневого каталога на 700 с chmod 700 /path/to/your/home Это делает Ваш dir дома недоступным для каждого пользователя, который не является Вами.

SSH не имеет никакого отношения к этому!

0
27.01.2020, 21:10

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

Это может также обнаружить, если соединение сделано удаленно (по SSH, FTP...), и действуйте по-другому соответственно.

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

0
27.01.2020, 21:10

Теги

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