Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как определить владельца файла


Как узнать владельца папки. Изменения владельца папки

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

К сожалению, чтобы определить владельца файла с помощью проводника нужно сделать множество щелчков мышью. Чтобы получить интересующую Вас информацию быстро, откройте окно командной строки и введите в ней команду:

Dir \Q имя_файла

После нажатия клавиши Enter утилита Dir отобразит имя владельца файла. Как правило, владельцем файла является пользователь, создавший его. В самом худшем случае он способен переадресовать Вас к лицу, способному определить, что делать с файлом. Достоинством метода является возможность одновременной проверки множества файлов, особенно если эти файлы имеют одно расширение.

Если Вы подозреваете, что решение задачи подобным способом отнимает слишком много времени, воспользуйтесь проводником. Щелкните на файле правой кнопкой мыши и выберите в контекстном меню команду Свойства. В окне свойств перейдите на вкладку Безопасность и щелкните на кнопке Дополнительно. В диалоговом окне Дополнительные параметры безопасности перейдите на вкладку Владелец, в которой расположено поле Текущий владелец этого элемента. Именно в этом поле Вы найдете информацию о владельце файла. Единственной веской причиной для использования описанного метода является смена владельца файла — задача, которую не так просто решить с помощью командной строки.

Linux. Как узнать владельца файла?

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

Но, на практике в этом нет ничего сложного.

Выполните в консоли следующую команду:

В результате Вы получите список файлов текущей папки, где в третьей колонке Вы увидите имя владельца файла, а в четвертой — его группу. Например,

-rw-r--r-- 1 root root 45 Мар 10 16:37 file1.conf -rw-r----- 1 root named 1101 Дек 10 2003 file2.conf -rw-r----- 1 root named 132 Мар 10 22:48 some.key

-rw-r--r--    1 root     root           45 Мар 10 16:37 file1.conf

-rw-r-----    1 root     named        1101 Дек 10  2003 file2.conf

-rw-r-----    1 root     named         132 Мар 10 22:48 some.key

Аналогично можно поступить, если Вам надо узнать информацию только по одному файлу:

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

Похожие записи


Как быстро узнать имя владельца любого объекта в Windows 10

Как известно, Windows не позволяет производить какие-либо операции с целым рядом файлов и каталогов по причине отсутствия у пользователя прав или хотя бы потому, что файл в данный момент используется. Как правило, это системные объекты, то есть те, владельцами которых являются Система, а также службы Local Service и TrustedInstaller. А еще проблемы с доступом могут возникнуть при попытке изменить файл или папку, созданные учетной записью, которая затем была удалена. Чтобы просмотреть имя владельца, необходимо зайти в свойства объекта, переключиться на вкладку «Безопасность» и нажать кнопку «Дополнительно».

Не очень удобно, так как приходится выполнять много действий.

Как быстро узнать имя владельца любого объекта в Windows 10

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

Скачайте по ссылке https://cloud.mail.ru/public/C2fJ/h2vC8ez5D этот архив и распакуйте его содержимое в любое удобное расположение.

Выполните слияние REG-файла AddViewOwner.reg.

После этого в контекстном меню Проводника у вас появится новый пункт «Владелец объекта».

Кликните ПКМ по любому файлу или папке и выберете в меню эту новую опцию. Тут же откроется консоль PowerShell, в которой будет указано имя владельца данного объекта.

Для удаления опции из меню выполните слияние файла RemoveViewOwner.reg.

В обоих случаях изменения вступают в силу немедленно. 
  • Примечание: этим способом не получится узнать имя владельца некоторых типов ярлыков, например, ярлыков апплетов, созданных в классической панели управления и помещенных на рабочий стол.

Тот же самый результат можно было получить, используя PowerShell командлет Get-ACL с указанием пути к вашему файлу. Этот командлет получает объекты, предоставляющие дескриптор безопасности исследуемого ресурса. Помимо прав доступа, ACL содержит также информацию о владельце, которую и выводит команда Get-ACL. Но использование консоли PowerShell для определения владельца было бы еще менее удобным, чем просмотр дополнительных свойств, поэтому добавление команды в контекстное меню в данном случае самое лучшее решение.

Метки к статье: Твики

Как узнать пользователя, создавшего папку?

Как узнать пользователя, создавшего папку?

Ответ мастера:

Современной операционной системой Windows 7 предоставляются большие возможности по настройке безопасности системы и аудита изменений, которые происходят в ней. У всех файлов и папок, находящихся на разделах, есть установленная политика доступа. Для просмотра информации о том, кто является владельцем папки, нужно зайти в ее свойства.

Откроем в «Мой компьютер» местоположение интересующей нас папки. Кликнем правой кнопкой мышки на рисунке папки, после этого на нижнем пункте «Свойства». В открывшемся окне информации о выбранной папке перейдем к вкладке безопасность, а затем щелкнем мышкой на кнопке «Дополнительно». Так мы перейдем в расширенные настройки. Обращаем внимание на вкладку «Владелец» в открывшемся окне.

В окне «Текущий владелец» указывается имя и группа владельца папки. Эта информация прописана через знак слэша. Также с помощью утилиты можно изменить владельца этой папки на другого пользователя ПК. Для изменения владельца выбранной папки выберем пользователя из предложенного перечня или добавим нового. Для этого кликнем на кнопку «Изменить», а после этого «Другие пользователи и группы». Найдем нужного нам пользователя при помощи встроенной опции поиска, а потом добавим к списку.

Стоит отметить, что владелец папки - это не всегда ее создатель. Пользователь автоматически становится владельцем, когда авторизуется в момент создания папки. Однако, какие-то папки с файлами образуются под влиянием системы или вирусов. Для того чтобы отслеживать действия процессов, необходимо установить программу мониторинга системы. Также можно поставить специальное ПО, которое в режиме он лайн будет записывать каждое действие на компьютере.

Проследим, какое время понадобится на создание папки и сравним с записями программы. Одна из таких утилит – это Expert. Ее можете скачать на сайте soft.ru. Установим ее в локальный диск ОС. Запустим программу и установим пароль на запуск. Далее просто выключаем компьютер. Если нам нужно будет просмотреть, какие папки и кто создавал их на компьютере, откроем программу, введем пароль и просмотрим записанные скриншоты.

Владелец файла и права доступа: oposumo — LiveJournal

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


Для каждого файла есть владелец, а так же группа, имеющая права на этот файл. Изначально владельцем файла становится пользователь, его создавший, а группа назначается по группе процесса, создающего файл.


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

Менять права доступа к файлу могут только владелец файла а так же суперпользователь (root). Чтобы изменить права доступа группы, владелец должен так же входить в группу, у которой есть права на файл, ну или опять же это должен делать суперпользователь.

Для изменения прав доступа используется команда chmod. Для смены владельца файла используется команда chown, для смены группы пользователей файла - команда chgrp.

 
Посмотреть владельца, группу файла и права доступа на него можно с помощью команды:
 
ls -l
 
Понятно, что в данном примере file нужно заменить на имя конкретного файла (если команда запускается прямо из папки с ним), либо на путь к нему. В результате должны увидеть подробную информацию о файле подобного вида (начало строки):
 
-rwxr-xr-x 1 root root ...

 
Во-первых, отсюда видно, что владелец файла root, группа тоже root (это как пример).
Во-вторых, в самом начале сочетание символов даёт полное представление о правах доступа на файл.

Первый символ обозначает тип файла:
 

-  обычный файл
d  каталог
b  файл блочного устройства
c  файл символьного устройства
s  доменное гнездо (socket)
p  именованный канал (pipe)
l  символическая ссылка (link)
 
Затем идут девять символов. Они делятся на три группы, по три символа.
Значения групп слева направо:
 
владелец
группа
все остальные пользователи системы
 
Значения символов в группах (символы тоже идут в определённом порядке):
 
r  чтение (reed)
w  запись (write)
x  выполнение (execute)
-  отсутствие права (на месте которого находится символ)
 
Таким образом в данном примере владелец может просматривать (читать), изменять (записывать) и исполнять файл, а остальные пользователи могут только просматривать и исполнять. Для директорий значения прав доступа примерно такие же, только выполнение значит возможность заходить в каталог (таким образом если пользователь имеет право на выполнение каталога, но не имеет право на чтение, он сможет зайти туда, но не увидит содержащийся в нём файлов).

Права доступа можно изменять командой chmod. При этом сами права можно задать двумя способами (буквами или цифрами).
Сначала способ, показавшийся мне более простым и понятным:
 

chmod wXp file
 
Здесь вместо каждой из букв wXp, нужно подставить соответсвующие значения.

Вместо w нужно подставить один из следующих символов, либо их сочетание:
 

u  пользователь, являющийся владельцем файла (user)
g  группа (group)
o  все остальные пользователи (other)
a  все пользователи вообще (all), то есть a=ugo
 
Вместо X нужно подставить один из символов:
 
+  даёт право
-  лишает права
=  устанавливает указанные права вместо имеющихся
 
Вместо p могут подставляться следующие символы или их сочетания:
 
r  чтение, просмотр (reed)
w  запись, изменение (write)
x  выполнение (execute)

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

На примерах это будет выглядеть следующим образом:
chmod a+x file  предоставляет всем пользователям системы право на выполнение file (варианты равнозначной записи: chmod ugo+x file, chmod +x file)
chmod go-rw file удаляет права на чтение и запись для всех, кроме владельца file
chmod u=rwx  предоставляет владельцу полные права на file (права других пользователей остаются прежними)
chmod u+w,go+x file  добавляет владельцу право изменять, а всем остальным право выполнять file

Второй способ записи - цифровой. Он возможно даже ещё проще, только надо запоминть числовые значения:
 

r = 4  чтение
w = 2  запись
x = 1  выполнение
 
Если предоставляется набор прав, то цифры складываются. Таким образом кроме имеющихся трёх цифр возможны ещё варианты:
 
3 = wx  запись и выполнение
5 = rx  чтение и выполнение
6 = rw  чтение и запись
7 = rwx  чтение, запись и выполнение (полные права)
 
В команде сначала пишется право для владельца, затем для группы и потом для всех остальных пользователей. Таким образом получается трёхзначное число, а в остальном употребление команды точно такое же. Например:

chmod 777 file  предоставляет полные права на file абсолютно всем пользователям системы
chmod 760 file  даёт полные права владельцу, права на просмотр и изменение группе и никаких прав остальным пользователям

Для смены владельца и группы файла существуют команды chown и chgrp. Использование:

 
chown newowner file1 file2 ...
chgrp newgroup file1 file2 ...
  Где newowner и newgroup новый владелец файла и новая группа файла соответственно. Сменить владельца может либо сам владелец (текущий), либо суперпользователь. Чтобы сменить группу владелец должен также входить в группу, которой принадлежит файл изначально.

К теме о команде chmod, есть ещё несколько признаков файла, задаваемых вместе с правами доступа.

1) бит сохранения задачи (бит прилипчивости - sticky bit) указывает системе, что после выполнения задачи, надо сохранить её в оперативной памяти. Удобно для часто вызываемых на выполнение задач для ускорения работы, но на достаточно мощных компьютерах не особо актуально.

2) бит смены идентификатора пользователя указывает, что программа должна получить те же права доступа, что имеет владелец программы (обычно, то есть когда этот бит не установлен, программа получает права те же, что имеет пользователь, её запустивший). Это бывает нужно в некоторых случаях, например, при смене пароля (иначе пользователь не мог бы поменять свой пароль).

3) бит смены идентификатора группы работает подобным образом.

В цифровом виде имеют значения:
 

4  бит смены идентификатора пользователя
2  бит смены идентификатора группы
1  бит сохранения задачи

 
При цифровом задании прав, данные атрибуты так же могут суммироваться и должны идти первыми:
chmod 4775 file  даёт полные права владельцу и группе, всем остальным даёт права только на чтение и выполнение и устанавливает бит смены идентификатора пользователя
Установка бита смены идентификатора пользователя:
chmod +s file

При установленных всех трёх битов результат вывода команды ls -l может принять подобную форму:
 

-rwSrwsrwT
 
В данном случае S указывает на установленный бит смены идентификатора пользователя, но владелец тут не имеет права на исполнение файла (файл может быть вообще не исполняемый), s указывает на установленный бит смены идентификатора группы, причём группа имеет право на выполнение файла, а также установлен бит сохранения задачи, но все остальные пользователи не могут выполнять файл - на это указывает T (аналогично как и с S и s, маленькая t указывала бы на то, что остальные пользователи имеют право на выполнение файла).

Информация отсюда (кое-что там написано лучше и полнее, например, про команду смены пароля, зачем ей бит смены идентификатора пользователя, плюс там есть немного про учёт блокировки доступа):
 http://rus-linux.net/MyLDP/consol/hdrguide/rusman/chmod.htm 
 http://www.linuxcenter.ru/lib/books/kostromin/gl_04_05.phtml  

Права в Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask) / Хабр

Всем привет. Это перевод статьи из книги RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 and EX300.

От себя: Надеюсь статья будет полезна не только начинающим, но и поможет более опытным администраторам упорядочить свои знания.

Итак, поехали.



Чтобы получить доступ к файлам в Linux, используются разрешения. Эти разрешения назначаются трем объектам: файлу, группе и другому объекту (то есть всем остальным). В этой статье вы узнаете, как применять разрешения.

Статья начинается с обзора основных понятий, после чего обсуждаются специальные разрешения (Special permissions) и списки контроля доступа (ACL). В конце этой статьи рассматривается настройка прав доступа по умолчанию через umask, а также управление расширенными атрибутами пользователя.

Управление владением файлами


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

Отображение владельца файла или каталога


В Linux у каждого файла и каждого каталога есть два владельца: пользователь и группа.

Эти владельцы устанавливаются при создании файла или каталога. Пользователь, который создаёт файл становится владельцем этого файла, а первичная группа, в которую входит этот же пользователь, так же становится владельцем этого файла. Чтобы определить, есть ли у вас как у пользователя права доступа к файлу или каталогу, оболочка проверяет владение ими.

Это происходит в следующем порядке:

  1. Оболочка проверяет, являетесь ли вы владельцем файла, к которому вы хотите получить доступ. Если вы являетесь этим владельцем, вы получаете разрешения и оболочка прекращает проверку.
  2. Если вы не являетесь владельцем файла, оболочка проверит, являетесь ли вы участником группы, у которой есть разрешения на этот файл. Если вы являетесь участником этой группы, вы получаете доступ к файлу с разрешениями, которые для группы установлены, и оболочка прекратит проверку.
  3. Если вы не являетесь ни пользователем, ни владельцем группы, вы получаете права других пользователей (Other).

Чтобы увидеть текущие назначения владельца, вы можете использовать команду ls -l. Эта команда показывает пользователя и группу-владельца. Ниже вы можете увидеть настройки владельца для каталогов в каталоге /home.
[root@server1 home]# ls -l total 8 drwx------. 3 bob bob 74 Feb 6 10:13 bob drwx------. 3 caroline caroline 74 Feb 6 10:13 caroline drwx------. 3 fozia fozia 74 Feb 6 10:13 fozia drwx------. 3 lara lara 74 Feb 6 10:13 lara drwx------. 5 lisa lisa 4096 Feb 6 10:12 lisa drwx------. 14 user user 4096 Feb 5 10:35 user 

С помощью команды ls вы можете отобразить владельца файлов в данном каталоге. Иногда может оказаться полезным получить список всех файлов в системе, в которых в качестве владельца указан данный пользователь или группа. Для этого вы можете использовать find. Аргумент find -user может быть использован для этой цели. Например, следующая команда показывает все файлы, у которых в качестве владельца указан пользователь linda:
find / -user linda

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

Например, следующая команда ищет все файлы, принадлежащие группе users:

find / -group users

Изменение владельца


Чтобы применить соответствующие разрешения, первое, что нужно учитывать, это владение. Для этого есть команда chown. Синтаксис этой команды несложен для понимания:
chown кто что

Например, следующая команда меняет владельца каталога /home/account на пользователя linda:
chown linda /home/account

Команда chown имеет несколько опций, одна из которых особенно полезна: -R. Вы можете догадаться, что она делает, потому что эта опция доступна и для многих других команд. Это позволяет вам рекурсивно устанавливать владельца, что позволяет вам установить владельца текущего каталога и всего, что находится ниже. Следующая команда меняет владельца для каталога /home и всего, что находится под ним, на пользователя lisa:

Сейчас владельцы выглядят так:

[root@localhost ~]# ls -l /home total 0 drwx------. 2 account account 62 Sep 25 21:41 account drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa 

Выполним:
[root@localhost ~]# chown -R lisa /home/account [root@localhost ~]# 

Теперь пользователь lisa стал владельцем каталога account:
[root@localhost ~]# ls -l /home total 0 drwx------. 2 lisa account 62 Sep 25 21:41 account drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa 

Изменение владельца группы


Есть два способа изменить владение группой. Вы можете сделать это, используя chown, но есть специальная команда с именем chgrp, которая выполняет эту работу. Если вы хотите использовать команду chown, используйте . или : перед названием группы.

Следующая команда изменяет какого-либо владельца группы /home/account на группу account:

chown .account /home/account 

Вы можете использовать chown для изменения владельца пользователя и/или группы несколькими способами. Вот несколько примеров:
  • chown lisa myfile1 устанавливает пользователя lisa владельцем файла myfile1.
  • chown lisa.sales myfile устанавливает пользователя lisa владельцем файла myfile, а так же устанавливает группу sales владельцем этого же файла.
  • chown lisa:sales myfile то же самое, что и предыдущая команда.
  • chown .sales myfile устанавливает группу sales владельцем файла myfile без изменения владельца пользователя.
  • chown :sales myfile то же самое, что и предыдущая команда.

Вы можете использовать команду chgrp, чтобы изменить владельца группы. Рассмотрим следующий пример, где вы можете с помощью chgrp установить владельцем каталога account группу sales:
chgrp .sales /home/account

Как и в случае с chown, вы можете использовать опцию -R с chgrp, а также рекурсивно менять владельца группы.

Понимание владельца по умолчанию


Вы могли заметить, что когда пользователь создает файл, применяется владение по умолчанию.
Пользователь, который создает файл, автоматически становится владельцем этого файла, а основная группа этого пользователя автоматически становится владельцем этого файла. Обычно это группа, которая указана в файле /etc/passwd в качестве основной группы пользователя. Однако если пользователь является членом нескольких групп, он может изменить эффективную основную группу.

Чтобы показать текущую эффективную первичную группу, пользователь может использовать команду groups:

[root@server1 ~]# groups lisa lisa : lisa account sales 

Если текущий пользователь linda хочет изменить эффективную первичную группу, он будет использовать команду newgrp, за которой следует имя группы, которую он хочет установить в качестве новой эффективной первичной группы. После использования команды newgrp первичная группа будет активна, пока пользователь не введет команду exit или не выйдет из системы.

Ниже показано, как пользователь lisa использует эту команду, что бы первичной группой стала группа sales:

lisa@server1 ~]$ groups lisa account sales [lisa@server1 ~]$ newgrp sales [lisa@server1 ~]$ groups sales lisa account [lisa@server1 ~]$ touch file1 [lisa@server1 ~]$ ls -l total 0 -rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1 

После изменения действующей основной группы все новые файлы, созданные пользователем, получат эту группу в качестве группы-владельца.Чтобы вернуться к исходной настройке первичной группы, используйте exit.

Чтобы иметь возможность использовать команду newgrp, пользователь должен быть членом той группы, которую он хочет использовать в качестве первичной. Кроме этого, групповой пароль может быть использован для группы с помощью команды gpasswd. Если пользователь использует команду newgrp, но не является членом целевой группы, оболочка запрашивает пароль группы. После того, как вы введете правильный групповой пароль, будет установлена новая эффективная первичная группа.

Управление основными правами


Система разрешений Linux была изобретена в 1970-х годах. Поскольку вычислительные потребности были ограничены в те годы, базовая система разрешений была довольно ограничена. Эта система разрешений использует три разрешения, которые можно применять к файлам и каталогам. В этом разделе вы узнаете, как использовать и изменять эти разрешения.

Понимание прав на чтение, запись и выполнение


Три основных разрешения позволяют вам читать, записывать и выполнять файлы. Эффект этих разрешений отличается при применении к файлам или каталогам. Применительно к файлу разрешение на чтение дает вам право открыть файл для чтения. Следовательно, вы можете прочитать его содержимое, но это означает, что ваш компьютер может открыть файл, чтобы что-то с ним сделать.

Программный файл, которому требуется доступ к библиотеке, должен, например, иметь доступ для чтения к этой библиотеке. Из этого следует, что разрешение на чтение — это самое основное разрешение, которое вам нужно для работы с файлами.

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

Как вы, вероятно, можете догадаться, разрешение на запись, если оно применяется к файлу, позволяет записывать в файл. Иначе говоря, позволяет изменять содержимое существующих файлов. Однако он не позволяет создавать или удалять новые файлы или изменять права доступа к файлу. Для этого вам нужно дать разрешение на запись каталогу, где вы хотите создать файл. В каталогах это разрешение также позволяет создавать и удалять новые подкаталоги.

Разрешение на выполнение — это то, что вам нужно для выполнения файла. Оно никогда не будет установлено по умолчанию, что делает Linux практически полностью невосприимчивым к вирусам. Только кто-то с правами записи на каталог может применять разрешение на выполнение.

Ниже обобщается использование основных разрешений:

Использование chmod


Для управления правами используется команда chmod. При использовании chmod вы можете устанавливать разрешения для пользователя (user), группы (group) и других (other). Вы можете использовать эту команду в двух режимах: относительный режим и абсолютный режим. В абсолютном режиме три цифры используются для установки основных разрешений.

При настройке разрешений рассчитайте необходимое вам значение. Если вы хотите установить чтение, запись и выполнение для пользователя, чтение и выполнение для группы, а также чтение и выполнение для других в файле /somefile, то вы используете следующую команду chmod:

chmod 755 /somefile

Когда вы используете chmod таким способом, все текущие разрешения заменяются установленными вами разрешениями.

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

  1. Сначала вы указываете, для кого вы хотите изменить разрешения. Для этого вы можете выбрать между пользователем (u), группой (g) и другими (o).
  2. Затем вы используете оператор для добавления или удаления разрешений из текущего режима или устанавливаете их абсолютно.
  3. В конце вы используете r, w и x, чтобы указать, какие разрешения вы хотите установить.

При изменении разрешений в относительном режиме вы можете пропустить часть «кому», чтобы добавить или удалить разрешение для всех объектов. Например, эта команда добавляет разрешение на выполнение для всех пользователей:
chmod +x somefile

При работе в относительном режиме вы также можете использовать более сложные команды. Например, эта команда добавляет разрешение на запись в группу и удаляет чтение для других:
chmod g+w,o-r somefile

При использовании chmod -R o+rx /data вы устанавливаете разрешение на выполнение для всех каталогов, а также для файлов в каталоге /data. Чтобы установить разрешение на выполнение только для каталогов, а не для файлов, используйте chmod -R o+ rX /data.

Верхний регистр X гарантирует, что файлы не получат разрешение на выполнение, если файл уже не установил разрешение на выполнение для некоторых объектов. Это делает X более разумным способом работы с разрешениями на выполнение; это позволит избежать установки этого разрешения на файлы, где оно не требуется.

Расширенные права


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

Понимание расширенных прав SUID, GUID и sticky bit


Есть три продвинутых разрешения. Первое из них — это разрешение на установку идентификатора пользователя (SUID). В некоторых особых случаях вы можете применить это разрешение к исполняемым файлам. По умолчанию пользователь, запускающий исполняемый файл, запускает этот файл со своими собственными разрешениями.

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

Рассмотрим, например, ситуацию, когда пользователю необходимо сменить пароль. Для этого пользователь должен записать свой новый пароль в файл /etc/shadow. Однако этот файл недоступен для записи пользователям, не имеющим прав доступа root:

root@hnl ~]# ls -l /etc/shadow ----------. 1 root root 1184 Apr 30 16:54 /etc/shadow 

Разрешение SUID предлагает решение этой проблемы. В утилите /usr/bin/passwd это разрешение применяется по умолчанию. Это означает, что при смене пароля пользователь временно получает права root, что позволяет ему записывать в файл /etc/shadow. Вы можете видеть разрешение SUID с ls -l как s в позиции, где обычно вы ожидаете увидеть x для пользовательских разрешений:
[root@hnl ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd 

Разрешение SUID может выглядеть полезным (и в некоторых случаях так оно и есть), но в то же время оно потенциально опасно. При неправильном применении вы можете случайно раздать права доступа root. Поэтому я рекомендую использовать его только с максимальной осторожностью.

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

Второе специальное разрешение — это идентификатор группы (SGID). Это разрешение имеет два эффекта. При применении к исполняемому файлу, он дает пользователю, который исполняет файл, разрешения владельца группы этого файла. Таким образом, SGID может выполнить более или менее то же самое, что SUID. Однако для этой цели SGID практически не используется.

Как и в случае с разрешением SUID, SGID применяется к некоторым системным файлам в качестве настройки по умолчанию.

Когда применяется к каталогу, SGID может быть полезен, потому что вы можете использовать его для установки владельца группы по умолчанию для файлов и подкаталогов, созданных в этом каталоге. По умолчанию, когда пользователь создает файл, его эффективная первичная группа устанавливается как владелец группы для этого файла.

Это не всегда очень полезно, особенно потому, что у пользователей Red Hat/CentOS в качестве основной группы задана группа с тем же именем, что и у пользователя, и из которых пользователь является единственным участником. Таким образом, по умолчанию файлы, которые создает пользователь, будут групповыми для общего доступа.

Представьте себе ситуацию, когда пользователи linda и lori работают в бухгалтерии и являются членами группы account. По умолчанию эти пользователи являются членами частной группы, единственным членом которой они являются. Однако оба пользователя являются членами группы account, но также и в качестве параметра вторичной группы.

Ситуация по умолчанию состоит в том, что когда любой из этих пользователей создает файл, основная группа становится владельцем. Поэтому по умолчанию linda не может получить доступ к файлам, созданным lori, и наоборот. Однако, если вы создаете общий каталог группы (скажем, /groups/account) и убедитесь, что разрешение SGID применено к этому каталогу и что учет группы установлен как владелец группы для этого каталога, все файлы, созданные в этом каталоге и во всех его подкаталогах, также получают account группы как владельца группы по умолчанию.

По этой причине разрешение SGID является очень полезным разрешением для установки в каталогах общих групп.

Разрешение SGID показывается в выводе ls -ld как s в позиции, где вы обычно находите разрешение на выполнение группы:

[root@hnl data]# ls -ld account drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account 

Третий из специальных разрешений — sticky bit. Это разрешение полезно для защиты файлов от случайного удаления в среде, где несколько пользователей имеют права на запись в один и тот же каталог. Если применяется закрепленный sticky bit, пользователь может удалить файл, только если он является пользователем-владельцем файла или каталога, в котором содержится файл. По этой причине он применяется в качестве разрешения по умолчанию для каталога /tmp и может быть полезен также для каталогов общих групп.

Без sticky bit, если пользователь может создавать файлы в каталоге, он также может удалять файлы из этого каталога. В общедоступной групповой среде это может раздражать. Представьте себе пользователей linda и lori, которые оба имеют права на запись в каталог /data/account и получают эти разрешения благодаря участию в группе account. Поэтому linda может удалять файлы, созданные lori, и наоборот.

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

  • Пользователь является владельцем файла;
  • Пользователь является владельцем каталога, в котором находится файл.

При использовании ls -ld, вы можете видеть sticky bit как t в позиции, где вы обычно видите разрешение на выполнение для других:
[root@hnl data]# ls -ld account/ drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/ 

Применение расширенных прав


Чтобы применить SUID, SGID и sticky bit, вы также можете использовать chmod. SUID имеет числовое значение 4, SGID имеет числовое значение 2, а sticky bit имеет числовое значение 1.

Если вы хотите применить эти разрешения, вам нужно добавить четырехзначный аргумент в chmod, первая цифра которого относится к специальным разрешениям. Следующая строка, например, добавит разрешение SGID на каталог и установит rwx для пользователя и rx для группы и других:

chmod 2755 /somedir

Это довольно непрактично, если вам нужно посмотреть текущие права доступа, которые установлены, прежде чем работать с chmod в абсолютном режиме. (Вы рискуете перезаписать разрешения, если вы этого не сделаете.) Поэтому я рекомендую работать в относительном режиме, если вам нужно применить какое-либо из специальных разрешений:
  1. Для SUID используйте chmod u+s.
  2. Для SGID используйте chmod g+s.
  3. Для sticky bit используйте chmod +t, а затем имя файла или каталога, для которого вы хотите установить разрешения.

В таблице обобщено все, что важно знать об управлении специальными разрешениями.

Пример работы со специальными правами


В этом примере вы используете специальные разрешения, чтобы членам группы было проще обмениваться файлами в каталоге общей группы. Вы назначаете ID-бит установленного идентификатора группы, а также sticky bit, и видите, что после их установки добавляются функции, облегчающие совместную работу членов группы.
  1. Откройте терминал, в котором вы являетесь пользователем linda. Создать пользователя можно командой useradd linda, добавить пароль passwd linda.
  2. Создайте в корне каталог /data и подкаталог /data/sales командой mkdir -p /data/sales. Выполните cd /data/sales, чтобы перейти в каталог sales. Выполните touch linda1 и touch linda2, чтобы создать два пустых файла, владельцем которых является linda.
  3. Выполните su — lisa для переключения текущего пользователя на пользователя lisa, который также является членом группы sales.
  4. Выполните cd /data/sales и из этого каталога выполните ls -l. Вы увидите два файла, которые были созданы пользователем linda и принадлежат группе linda. Выполните rm -f linda*. Это удалит оба файла.
  5. Выполните touch lisa1 и touch lisa2, чтобы создать два файла, которые принадлежат пользователю lisa.
  6. Выполните su - для повышения ваших привилегий до уровня root.
  7. Выполните chmod g+s,o+t /data/sales, чтобы установить бит идентификатора группы (GUID), а также sticky bit в каталоге общей группы.
  8. Выполните su — linda. Затем выполните touch linda3 и touch linda4. Теперь вы должны увидеть, что два созданных вами файла принадлежат группе sales, которая является владельцем группы каталога /data/sales.
  9. Выполните rm -rf lisa*. Sticky bit предотвращает удаление этих файлов от имени пользователя linda, поскольку вы не являетесь владельцем этих файлов. Обратите внимание, что если пользователь linda является владельцем каталога /data/sales, он в любом случае может удалить эти файлы!

Управление ACL (setfacl, getfacl) в Linux


Даже если расширенные права, которые обсуждались выше, добавляют полезную функциональность к тому, как Linux работает с разрешениями, это не позволяет вам предоставлять разрешения более чем одному пользователю или одной группе в одном файле.

Списки контроля доступа предлагают эту функцию. Кроме того, они позволяют администраторам устанавливать разрешения по умолчанию сложным способом, при котором установленные разрешения могут различаться в разных каталогах.

Понимание ACL


Хотя подсистема ACL добавляет отличные функциональные возможности вашему серверу, у нее есть один недостаток: не все утилиты поддерживают ее. Следовательно, вы можете потерять настройки ACL при копировании или перемещении файлов, а программное обеспечение для резервного копирования может не выполнить резервное копирование настроек ACL.

Утилита tar не поддерживает ACL. Чтобы убедиться, что настройки ACL не будут потеряны при создании резервной копии, используйте star вместо tar. star работает с теми же параметрами, что и tar; он просто добавляет поддержку настроек ACL.

Вы также можете создать резервную копию ACL с помощью getfacl, которую можно восстановить с помощью команды setfacl. Чтобы создать резервную копию, используйте getfacl -R /directory > file.acls. Чтобы восстановить настройки из файла резервной копии, используйте setfacl --restore=file.acl.

Отсутствие поддержки некоторыми инструментами не должно быть проблемой. Списки ACL часто применяются к каталогам как структурная мера, а не к отдельным файлам.
Поэтому их будет не много, а всего лишь несколько, примененных в умных местах файловой системы. Следовательно, восстановить исходные списки ACL, с которыми вы работали, относительно легко, даже если ваше ПО для резервного копирования их не поддерживает.

Подготовка файловой системы для ACL


Перед началом работы с ACL может потребоваться подготовить файловую систему для поддержки ACL. Поскольку метаданные файловой системы необходимо расширять, не всегда есть поддержка по умолчанию для ACL в файловой системе. Если при настройке списков ACL для файловой системы вы получаете сообщение «operation not supported», возможно, в вашей файловой системе отсутствует поддержка ACL.

Чтобы это исправить, вам нужно добавить опцию acl mount в файле /etc/fstab, чтобы файловая система была смонтирована с поддержкой ACL по умолчанию.

Изменение и просмотр настроек ACL с помощью setfacl и getfacl


Чтобы установить ACL, вам нужна команда setfacl. Чтобы увидеть текущие настройки ACL, вам нужен getfacl. Команда ls -l не показывает никаких существующих ACL; он просто показывает + после списка разрешений, который указывает, что списки ACL применяются и к файлу.

Перед настройкой списков ACL всегда полезно показать текущие настройки ACL с помощью getfacl. Ниже на примере вы можете увидеть текущие права доступа, как показано с помощью ls -ld, а также как показано с getfacl. Если вы посмотрите достаточно внимательно, вы увидите, что показанная информация точно такая же.

[root@server1 /]# ls -ld /dir drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir [root@server1 /]# getfacl /dir getfacl: Removing leading '/' from absolute path names # file: dir # owner: root # group: root user::rwx group::r-x other::r-x 

В результате выполнения команды getfacl ниже видно, что разрешения показаны для трех разных объектов: пользователя, группы и других. Теперь давайте добавим ACL, чтобы дать права на чтение и выполнение и группе sales. Команда для этого setfacl -m g:sales:rx /dir. В этой команде -m указывает, что текущие настройки ACL необходимо изменить. После этого g:sales:rx сообщает команде установить ACL для чтения и выполнения (rx) для группы (g) sales. Ниже вы можете увидеть, как выглядит команда, а также вывод команды getfacl после изменения текущих настроек ACL.
[root@server1 /]# setfacl -m g:sales:rx /dir [root@server1 /]# getfacl /dir getfacl: Removing leading '/' from absolute path names # file: dir # owner: root # group: root user::rwx group::r-x group:sales:r-x mask::r-x other::r-x 

Теперь, когда вы понимаете, как установить групповой ACL, легко понять ACL для пользователей и других пользователей. Например, команда setfacl -m u:linda:rwx /data дает разрешения пользователю linda в каталоге /data, не делая его владельцем и не изменяя назначение текущего владельца.

Команда setfacl имеет много возможностей и опций. Один вариант особенно важен, параметр -R. Если используется, опция делает настройку ACL для всех файлов и подкаталогов, которые в настоящее время существуют в каталоге, где вы устанавливаете ACL. Рекомендуется всегда использовать эту опцию при изменении списков ACL для существующих каталогов.

Работа с ACL по умолчанию


Одним из преимуществ использования списков ACL является то, что вы можете давать разрешения нескольким пользователям или группам в каталоге. Еще одним преимуществом является то, что вы можете включить наследование, работая с ACL по умолчанию.

Установив ACL по умолчанию, вы определите разрешения, которые будут установлены для всех новых элементов, создаваемых в каталоге. Имейте в виду, что ACL по умолчанию не меняет разрешения для существующих файлов и подкаталогов. Чтобы изменить их, нужно добавить и обычный ACL!

Это важно знать. Если вы хотите использовать ACL для настройки доступа нескольких пользователей или групп к одному и тому же каталогу, вы должны установить ACL дважды. Сначала используйте setfacl -R -m, чтобы изменить ACL для текущих файлов. Затем используйте setfacl -m d:, чтобы позаботиться обо всех новых элементах, которые также будут созданы.

Чтобы установить ACL по умолчанию, вам просто нужно добавить опцию d после опции -m (порядок имеет значение!). Поэтому используйте setfacl -m d:g:sales:rx /data, если вы хотите, чтобы группа sales имела доступ на чтение и выполнение всего, что когда-либо будет создано в каталоге /data.

При использовании списков ACL по умолчанию также может быть полезно установить ACL для других. Обычно это не имеет особого смысла, потому что вы также можете изменить разрешения для других, используя chmod. Однако, что вы не можете сделать с помощью chmod, это указать права, которые должны быть предоставлены другим пользователям для каждого нового файла, который когда-либо будет создан. Если вы хотите, чтобы другие не получали никаких разрешений на что-либо, созданное в /data, например, используйте setfacl -m d:o::- /data.

ACL и обычные разрешения не всегда хорошо интегрированы. Проблемы могут возникнуть, если вы применили ACL по умолчанию к каталогу, после чего элементы были добавлены в этот каталог, и затем попытаетесь изменить обычные разрешения. Изменения, которые применяются к обычным разрешениям, не будут хорошо отражены в обзоре ACL. Чтобы избежать проблем, сначала установите обычные разрешения, после чего установите ACL по умолчанию (и после этого старайтесь не изменять их снова).

Пример управления расширенными правами с использованием ACL


В этом примере вы продолжите работу с каталогами /data/account и /data/sales, которые вы создали ранее. В предыдущих примерах вы гарантировали, что группа sales имеет разрешения на /data/sales, а группа account имеет разрешения на /data/account.

Сначала убедитесь, что группа account получает разрешения на чтение в каталоге /data/sales, а группа sales получает разрешения на чтение в каталоге /data/account.

Затем вы устанавливаете списки ACL по умолчанию, чтобы убедиться, что для всех новых файлов правильно установлены разрешения для всех новых элементов.

  1. Откройте терминал.
  2. Выполните setfacl -m g:account:rx /data/sales и setfacl -m g:sales:rx /data/account.
  3. Выполните getfacl, чтобы убедиться, что права доступа были установлены так, как вы хотели.
  4. Выполните setfacl -m d:g:account:rwx,g:sales:rx /data/sales, чтобы установить ACL по умолчанию для каталога sales.
  5. Добавьте ACL по умолчанию для каталога /data/account, используя setfacl -m d:g:sales:rwx,g:account:rx /data/account.
  6. Убедитесь, что настройки ACL действуют, добавив новый файл в /data/sales. Выполните touch /data/sales/newfile и выполните getfacl /data/sales/newfile для проверки текущих разрешений.

Установка прав по умолчанию с помощью umask


Выше вы узнали, как работать с ACL по умолчанию. Если вы не используете ACL, есть параметр оболочки, который определяет права по умолчанию, которые вы получите: umask (обратная маска). В этом разделе вы узнаете, как изменить разрешения по умолчанию с помощью umask.

Вы, наверное, заметили, что при создании нового файла устанавливаются некоторые разрешения по умолчанию. Эти разрешения определяются настройкой umask. Этот параметр оболочки применяется ко всем пользователям при входе в систему. В параметре umask используется числовое значение, которое вычитается из максимальных разрешений, которые могут быть автоматически установлены для файла; максимальная настройка для файлов — 666, а для каталогов — 777.

Однако некоторые исключения относятся к этому правилу. Вы можете найти полный обзор настроек umask в таблице внизу.

Из цифр, используемых в umask, как и в случае числовых аргументов для команды chmod, первая цифра относится к разрешениям пользователя, вторая цифра относится к разрешениям группы, а последняя относится к разрешениям по умолчанию, установленным для других. Значение umask по умолчанию 022 дает 644 для всех новых файлов и 755 для всех новых каталогов, созданных на вашем сервере.

Полный обзор всех числовых значений umask и их результатов в таблице ниже.

Простой способ увидеть, как работает параметр umask, выглядит следующим образом: начните с разрешений по умолчанию для файла, установленного на 666, и вычтите umask, чтобы получить действующие разрешения. Сделайте то же самое для каталога и его разрешений по умолчанию 777.

Есть два способа изменить настройку umask: для всех пользователей и для отдельных пользователей. Если вы хотите установить umask для всех пользователей, вы должны убедиться, что параметр umask учитывается при запуске файлов среды оболочки, как указано в /etc/profile. Правильный подход — создать сценарий оболочки с именем umask.sh в каталоге /etc/profile.d и указать umask, который вы хотите использовать в этом сценарии оболочки. Если в этом файле изменяется umask, он применяется ко всем пользователям после входа на сервер.

Альтернативой настройке umask через /etc/profile и связанные файлы, где он применяется ко всем пользователям, входящим в систему, является изменение настроек umask в файле с именем .profile, который создается в домашнем каталоге каждого пользователя.

Настройки, примененные в этом файле, применяются только для отдельного пользователя; следовательно, это хороший метод, если вам нужно больше детализации. Мне лично нравится эта функция, чтобы изменить значение umask по умолчанию для пользователя root на 027, тогда как обычные пользователи работают с umask по умолчанию 022.

Работа с расширенными атрибутами пользователя


Это заключительный раздел о правах в Linux.

При работе с разрешениями всегда существует связь между объектом пользователя или группы и разрешениями, которые эти объекты пользователя или группы имеют для файла или каталога. Альтернативный метод защиты файлов на сервере Linux — работа с атрибутами.
Атрибуты выполняют свою работу независимо от пользователя, который обращается к файлу.

Как и в случае с ACL, для атрибутов файла может потребоваться включить параметр mount.

Это опция user_xattr. Если вы получаете сообщение «operation not supported» при работе с расширенными атрибутами пользователя, обязательно установите параметр mount в файле /etc/fstab.

Многие атрибуты задокументированы. Некоторые атрибуты доступны, но еще не реализованы. Не используйте их; они ничего вам не принесут.

Ниже приведены наиболее полезные атрибуты, которые вы можете применить:

A Этот атрибут гарантирует, что время доступа к файлу файла не изменяется.
Обычно каждый раз, когда файл открывается, время доступа к файлу должно быть записано в метаданные файла. Это отрицательно влияет на производительность; поэтому для файлов, к которым осуществляется регулярный доступ, атрибут A можно использовать для отключения этой функции.

a Этот атрибут позволяет добавлять, но не удалять файл.

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

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

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

I Этот атрибут включает индексирование для каталога, в котором он включен. Это обеспечивает более быстрый доступ к файлам для примитивных файловых систем, таких как Ext3, которые не используют базу данных B-tree для быстрого доступа к файлам.

i Этот атрибут делает файл неизменным. Следовательно, в файл нельзя вносить изменения, что полезно для файлов, которые нуждаются в дополнительной защите.

j Этот атрибут гарантирует, что в файловой системе ext3 файл сначала записывается в журнал, а затем — в блоки данных на жестком диске.

s Перезаписать блоки, в которых файл был сохранен, на 0 с после удаления файла. Это гарантирует, что восстановление файла невозможно после того, как он был удален.

u Этот атрибут сохраняет информацию об удалении. Это позволяет разрабатывать утилиту, которая работает с этой информацией для спасения удаленных файлов.

Если вы хотите применить атрибуты, вы можете использовать команду chattr. Например, используйте chattr +s somefile, чтобы применить атрибуты к somefile. Нужно удалить атрибут? Тогда используйте chattr -s somefile, и он будет удален. Чтобы получить обзор всех атрибутов, которые в настоящее время применяются, используйте команду lsattr.

Резюме


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

Если вам понравился этот перевод, то прошу написать об этом в комментариях. Будет больше мотивации делать полезные переводы.

В статье исправил некоторые опечатки и грамматические ошибки. Уменьшил некоторые громоздкие абзацы на более мелкие для удобства восприятия.

Вместо «Только кто-то с административными правами на каталог может применять разрешение на выполнение.» исправил на «Только кто-то с правами записи на каталог может применять разрешение на выполнение.», что будет более правильным.

За замечания спасибо berez.


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

На:
Если вы не являетесь владельцем файла, оболочка проверит, являетесь ли вы участником группы, у которой есть разрешения на этот файл. Если вы являетесь участником этой группы, вы получаете доступ к файлу с разрешениями, которые для группы установлены, и оболочка прекратит проверку.

Спасибо за замечание CryptoPirate

Как определить владельца файла?

Привет, сценарист! Есть ли способ определить владельца файла с помощью скрипта?

- BD

Привет, BD. На самом деле - это способ использования сценария для определения владельца файла, хотя понятно, почему вы не сможете найти эту информацию самостоятельно. В конце концов, для управления файлами используются два основных интерфейса сценариев: FileSystemObject среды выполнения сценария и класс CIM_DataFile WMI.Учитывая, что ни один из этих интерфейсов не включает свойство или метод для определения принадлежности файла, логическим выводом будет: «О, я думаю, вы все-таки не сможете этого сделать».

Но вы знаете, как обстоят дела со сценариями: что-то можно делать часто, хотя и не так, как вы могли бы логически ожидать. В этом случае вам необходимо использовать класс WMI Win32_LogicalFileSecuritySetting в сочетании с классом ассоциации Win32_LogicalFileOwner для определения владельца файла. Как и следовало ожидать, класс LogicalFileSecuritySetting извлекает информацию о безопасности из файла.Однако он не может сказать вам имя владельца файла. Здесь в игру вступает класс Win32_LogicalFileOwner: он принимает SID владельца (идентификатор безопасности) и передает его классу Win32_SID. Затем класс Win32_SID может выполнить поиск и сообщить имя владельца и домен.

Запутались? Мы вас не виним; классы ассоциации - не самая интуитивно понятная вещь из когда-либо созданных. К счастью, однако, вам не нужно понимать, как работают классы ассоциации; просто будьте уверены, что они делают работу .Например, вот сценарий, который сообщает о владельце файла C: \ Scripts \ My_script.vbs:

 при ошибке Возобновить Далее 

strComputer = "." Установите objWMIService = GetObject («winmgmts:» _ & «{ImpersonationLevel = impersonate}! \\» & strComputer & «\ root \ cimv2»)

strFile = «C: \ Scripts \ My_script.vbs»

Установить colItems = objWMIService.ExecQuery _ («АССОЦИАТОРЫ {Win32_LogicalFileSecuritySetting = '» & strFile & «‘} »_ & ”WHERE AssocClass = Win32_LogicalFileOwner ResultRole = Owner”)

для каждого объекта в colItems Wscript.Echo objItem.ReferencedDomainName Wscript.Echo objItem.AccountName следующий

Выглядит безумно, но со своей работой справится. А если вам нужно получить владельца другого файла? Нет проблем: просто установите значение переменной strFile на полный путь к этому файлу.

И пусть названия не вводят вас в заблуждение: эти два класса также могут использоваться для определения владельца папки . Например, этот сценарий сообщает владельцу папки C: \ Scripts:

 при ошибке Возобновить Далее 

strComputer = «.” Установите objWMIService = GetObject («winmgmts:» _ & «{ImpersonationLevel = impersonate}! \\» & strComputer & «\ root \ cimv2»)

strFile = «C: \ Scripts»

Установить colItems = objWMIService.ExecQuery _ («АССОЦИАТОРЫ {Win32_LogicalFileSecuritySetting = '» & strFile & «‘} »_ & ”WHERE AssocClass = Win32_LogicalFileOwner ResultRole = Owner”)

для каждого объекта в colItems Wscript.Echo objItem.ReferencedDomainName Wscript.Echo objItem.Имя учетной записи следующий

.

Эй, сценарист! Как я могу использовать Windows PowerShell для определения владельца файла?

Привет, сценарист! Можно ли определить владельца файла с помощью Windows PowerShell?
- GF

Привет, GF. Итак, сегодня 15 апреля , что в США может означать только одно: пришло время отпраздновать день рождения итальянского математика Пьетро Антонио Катальди , наиболее известного благодаря открытию шестого и седьмого простых чисел Мерсенна. Пьетро, ​​разработавший первую систему обозначений непрерывных дробей, родился в этот день в 1552 году.С днём рождения, Пьетро!

По совпадению, 15 апреля также является налоговым днем ​​в США, последним днем, когда американцы могут подавать свои налоговые декларации за предыдущий год. Излишне говорить, что для многих американцев 15 апреля -го -го - очень напряженный день. Для других американцев, однако, 15 апреля -го -го не будет ни малейшим стрессом; Это потому, что в США долгое время были люди, которые считают, что правительство не имеет права собирать подоходный налог, и поэтому решают не платить свои налоги.Например, в 1997 году актер Уэсли Снайпс (недавно осужденный по трем пунктам обвинения в неуплате подоходного налога) сообщил о доходе в размере 19 238 192 долларов. Уэсли не только отказался платить налоги на этот доход, но и потребовал возмещения 7 360 755 долларов. Интересно, что его собственные юристы назвали его позицию по подоходному налогу «странной», «сумасшедшей» и «совершенно неправильной».

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

О, и мы упоминали, что Уэсли Снайпс недавно был осужден по трем пунктам обвинения в неуплате подоходного налога? Обычно это случается с людьми, которые отказываются платить налоги или подавать налоговую декларацию.

Как оказалось, сценарист, который пишет эту колонку, сегодня тоже не нервничает; это потому, что он подал налоговую декларацию задолго до сегодняшнего срока. (В воскресенье, 13 апреля -го -го, если быть точным.) По общему признанию, это могло звучать так, как будто он немного сокращал его.Однако его это не беспокоило, потому что он знал, что сможет заполнить налоговую декларацию менее чем за час; Само собой разумеется, ему не нужно так много времени, чтобы считать свои деньги, как нужно Уэсли Снайпсу, чтобы пересчитать свои.

И нет, это не потому, что сценарист, который пишет эту колонку, действительно умеет быстро вычислять.

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

Хотя, честно говоря, ему не понадобилось так много времени для этого:

 Get-Acl C: \ Scripts \ Test.txt 

Хотите верьте, хотите нет, но это весь сценарий; все, что нам нужно сделать, чтобы определить владельца файла, - это вызвать командлет Get-Acl , передав Get-Acl путь к рассматриваемому файлу. В свою очередь, Get-Acl будет сообщать информацию, подобную этой:

 Directory: Microsoft.PowerShell.Core \ FileSystem :: C: \ Scripts 

Доступ владельца пути —- —– —— Test.txt FABRIKAM \ kenmyer BUILTIN \ Администраторы Разрешить FullCo…

Неплохо, а? Если все, что вас интересует, это имя владельца, то передайте результаты в командлет Select-Object , например:

 Get-Acl C: \ Scripts \ Test.txt | Выбрать владелец объекта 

Это даст вам информацию, подобную этой:

 Владелец —– ФАБРИКАМ \ kenmyer 

Или, если вы хотите увидеть полный дескриптор безопасности, перенаправьте вывод в командлет Format-List :

 Get-Acl C: \ Scripts \ Test.txt | Формат-Список 
 Путь: Microsoft.PowerShell.Core \ FileSystem :: C: \ Scripts \ Test.txt Владелец: FABRIKAM \ kenmyer Группа: ФАБРИКАМ \ Пользователи домена Доступ: BUILTIN \ Администраторы Разрешить полный контроль NT AUTHORITY \ SYSTEM Разрешить полный контроль FABRIKAM \ kenmyer Разрешить FullControl BUILTIN \ Users Разрешить ReadAndExecute, Синхронизировать Аудит: Sddl: O: S-1-5-21-1454471165-1004336348-1606980848-8183G: DUD: AI (A; ID; FA ;;; BA) (A; ID; FA ;;; SY) (A; ID; FA ;;; S-1-5-21-1454471165-1004336348-1606980848-8183) (A; ID; 0x1200a9 ;;; BU) 

Если бы мы должны были догадаться, мы бы предположили, что Уэсли Снайпс не означал означает , чтобы проигнорировать 15 апреля -го крайний срок подачи налоговой декларации.Он, вероятно, просто увлекся работой со скриптами, владеющими файлами, и забыл об уплате налогов.

Например, предположим, что Уэсли хотел получить список владельцев всех файлов в папке C: \ Scripts. Это не проблема; в конце концов, командлет Get-Acl принимает подстановочные знаки :

 Get-Acl C: \ Scripts \ *. * 
 Каталог: Microsoft.PowerShell.Core \ FileSystem :: C: \ Scripts 

Доступ владельца пути —- —– —— Пример.txt FABRIKAM \ kenmyer BUILTIN \ Administrators Разрешить FullCo… Test.txt FABRIKAM \ pilarackerman BUILTIN \ Администраторы Разрешить FullCo… Trial.txt FABRIKAM \ kenmyer BUILTIN \ Администраторы Разрешить FullCo…

Довольно круто, да? Конечно, в то время как Get-Acl принимает подстановочные знаки, не принимает , это своего рода параметр –recurse , который позволит вам получить владельцев всех файлов, находящихся в любых подпапках C: \ Скрипты.Но это тоже нормально; в конце концов, командлет Get-ChildItem действительно принимает параметр –recurse. Это означает, что мы можем получить владельцев файлов для всех файлов в C: \ Scripts и его подпапках с помощью этой команды:

 Get-ChildItem C: \ Scripts -recurse | ForEach-Object {Get-Acl $ _. FullName} 

В этой команде тоже нет ничего особенно сложного: мы просто используем Get-ChildItem и параметр –recurse для получения коллекции файлов, найденных в C: \ Scripts и его подпапках, а затем перенаправляем эту коллекцию в ForEach-Object командлет.В свою очередь, мы просим ForEach-Object запустить командлет Get-Acl для каждого файла в этой коллекции, используя значение свойства FullName в качестве параметра пути к файлу Get-Acl.

Это сработает? Эй, давай: знали ли вы когда-нибудь, чтобы сценаристы делали что-то, что не работает?

Ну ладно. Но команда, которую мы показали вам , будет работать . Обещание.

Кто бы мог подумать, что создание сценариев для владения файлами может быть таким увлекательным занятием, а? На самом деле, как и Уэсли Снайпс, мы так хорошо проводим время сегодня, что подумали, что попробуем еще один сценарий. - это довольно круто , что вы можете определить владельца файла, запустив простой небольшой скрипт Windows PowerShell. Но знаете что было бы реально круто ? Было бы здорово, если бы вы могли стать владельцем файла, запустив небольшой небольшой скрипт Windows PowerShell. Вы знаете, может быть, такой сценарий:

 $ objUser = New-Object System.Security.Principal.NTAccount («фабрикам», «кенмайер») $ objFile = Get-Acl C: \ Scripts \ Test.txt $ objFile.SetOwner ($ objUser) Set-Acl -aclobject $ objFile -path C: \ Scripts \ Test.текст 

Подобно сценаристу, который пишет о доходах в этой колонке за 2007 год, в этом сценарии действительно немного. В строке 1 мы используем командлет New-Object для создания экземпляра класса System.Security.Principal.NTAccount , класса .NET Framework, используемого для представления учетной записи пользователя. При создании экземпляра этого класса нам необходимо передать два параметра: имя нашего домена (fabrikam) и имя нашей учетной записи пользователя (kenmyer).

Примечание .Это хороший вопрос, и, насколько нам известно, ответ таков: если вы хотите избежать тюрьмы, то да, вы с по должны платить подоходный налог в США. Что касается вашего другого вопроса, то ответ отрицательный: хотя вы можете стать владельцем файла с помощью Windows PowerShell, мы не верим, что вы можете передать право собственности на файл кому-то другому. Чтобы передать право собственности другому пользователю, вам потребуется утилита Windows Resource Kit Subinacl.exe .

Во всяком случае, насколько нам известно.

После создания экземпляра класса NTAccount мы используем командлет Get-Acl для получения дескриптора безопасности из файла C: \ Scripts \ Test.txt; вот что мы делаем здесь:

 $ objFile = Get-Acl C: \ Scripts \ Test.txt 

Когда у нас есть дескриптор безопасности, мы можем использовать метод SetOwner , чтобы присвоить себе право собственности на файл:

 $ objFile.SetOwner ($ objUser) 

Ну вроде. Метод SetOwner назначает владельца виртуальной копии дескриптора безопасности, которую мы получили с помощью Get-Acl.Чтобы получить право собственности на сам файл, нам нужно использовать следующую команду Set-Acl :

 Set-Acl -aclobject $ objFile -path C: \ Scripts \ Test.txt 

Этот должен предоставить вам право владения файлом.

Попробуй эти сценарии, GF; если повезет, они помогут вам в управлении файлами и владельцами файлов. Что касается сценариста, который ведет эту колонку, он собирается взять оставшуюся часть дня выходной; в конце концов, - это день рождения Пьетро Антонио Катальди.

Примечание . Почему день рождения Пьетро не является национальным праздником в США? Бьет нас; в конце концов, человек действительно удерживал рекорд самого большого известного простого числа за 184 года, пока Леонард Эйлер не пришел в 1772 году и не обнаружил, что 2 31 - 1 было восьмым простым числом Мерсенна. Наибольшее известное простое число Мерсенна на момент написания этой статьи - 2 32 582 657 −1, что - по еще одному удивительному совпадению - также является суммой денег, которую Сценарист, пишущий эту колонку, запросил в качестве возмещения подоходного налога за 2007 год.Мы сообщим вам, как это происходит.

.

Как определить имя пользователя владельца файла

Еще 10 дискуссий, которые могут вас заинтересовать

1. Solaris

Мне нужно выполнить следующие операции в solaris 10: 1. сменить владельца и владельца группы для файлов, которые не принадлежат текущему пользователю и группе пользователей 2. чтобы можно было удалять файлы в каталоге / tmp, которые не принадлежат текущему пользователю 3. Разрешить обычному пользователю удаление файлов в папке / tmp ... (1 ответ)

Обсуждение началось: sirmark

1 ответов

2.Кибербезопасность

Что я сделал: - авторизовался с помощью acc1 и создал нового пользователя acc2 используемые команды: useradd и passwd. - Тогда я авторизовался в acc2. но все файлы принадлежат acc1. Проблема: я пытаюсь изменить владельца файлов с помощью команды chown. Но это дает мне сообщение об ошибке. Все, что я хочу сделать, это ... (13 ответов)

Обсуждение начато: TotallyConfused

13 ответов

3. UNIX для продвинутых и опытных пользователей

Привет, Я являюсь администратором сервера с SLES10, и когда я набираю «ls -l», я получаю имя компьютера, на котором я должен получить имя пользователя, например: сервер: ~ # ls -l drwxrwx --- + 3 user-1152 $ group1 4096 2009-11-25 12:56 папка drwxrwx --- + 3 пользователя-1113 $ group2 4096 10.03.2010 15:34... (4 ответов)

Обсуждение началось: rodrigoroma

4 ответов

4. UNIX для продвинутых и опытных пользователей

Привет всем! У нас есть файлы с разрешениями 744, а владелец - это owner1 и group1. Теперь у нас есть еще один пользователь owner2 группы group2, владелец2 может удалять файлы владельца1, и разрешение этих файлов составляет 744, администратор unix сказал нам, что он сделал некоторую конфигурацию на своей стороне, чтобы мы могли это сделать. ... (14 ответов)

Обсуждение начато: TheGunMan

14 ответов

5.Программирование и сценарии оболочки

привет, как я могу получить владельца файла (не uid) на платформе Windows. "getpwuid" не работает в Windows. Я знаю, что он работает на unix. Благодарю. (2 ответа)

Обсуждение началось: shellwell

2 ответов

6. UNIX для опытных и опытных пользователей

На данный момент я просто использую `ls -o` (с` cut`), но, очевидно, ls дает мне гораздо больше результатов, чем просто владелец файла.(9 ответов)

Обсуждение началось: Bilge

9 ответов

7. Программирование оболочки и сценарии

Здравствуйте, Моя задача - определить пользователя файла. Я использовал команду ls -l, но она отображает разрешение, ссылку, пользователя, группу и т.д., но я просто хочу отобразить только имя пользователя указанного файла. Большое спасибо (4 ответа)

Обсуждение начато: unibboy

4 ответов

8.Solaris

Привет, народ! Я знаю, что смена пользователей и групп - это довольно простой админ, но это меня поставило в тупик. Когда я пытаюсь изменить группу файла, владельцем которого я являюсь, мне все равно выдается ошибка «Не владелец». Например, когда я вхожу в систему как «веб-администратор», у меня есть следующий файл: ... (4 ответов)

Обсуждение началось: brizrobbo

4 ответов

9. UNIX для чайников. Вопросы и ответы

Я меняю владельца файла.Я пытаюсь сменить владельца на «систему», но это не работает. я sudo chown system /preferences.plist Пароль: chown: system: недопустимый аргумент есть ли способ прочитать право собственности на файл, например read chown ... (3 ответов)

Обсуждение началось: CBarraford

3 ответов

10. Программирование оболочки и сценарии

Как мне определить, есть ли у меня разрешение на запись в каталоге, внутри каталога.test -w pwd; эхо? Это не работает, поскольку возвращает false, хотя у меня есть разрешение на запись. (4 ответов)

Обсуждение началось: Sniper Pixie

4 ответов

.

определить владельца файла

Еще 10 дискуссий, которые могут вас заинтересовать

1. Solaris

Мне нужно выполнить следующие операции в solaris 10: 1. сменить владельца и владельца группы для файлов, которые не принадлежат текущему пользователю и группе пользователей 2. чтобы можно было удалять файлы в каталоге / tmp, которые не принадлежат текущему пользователю 3. Разрешить обычному пользователю удаление файлов в папке / tmp ... (1 ответ)

Обсуждение началось: sirmark

1 ответов

2.Кибербезопасность

Что я сделал: - авторизовался с помощью acc1 и создал нового пользователя acc2 используемые команды: useradd и passwd. - Тогда я авторизовался в acc2. но все файлы принадлежат acc1. Проблема: я пытаюсь изменить владельца файлов с помощью команды chown. Но это дает мне сообщение об ошибке. Все, что я хочу сделать, это ... (13 ответов)

Обсуждение начато: TotallyConfused

13 ответов

3. UNIX для продвинутых и опытных пользователей

Привет всем! У нас есть файлы с разрешениями 744, а владелец - это owner1 и group1.Теперь у нас есть еще один пользователь owner2 группы group2, владелец2 может удалять файлы владельца1, и разрешение этих файлов составляет 744, администратор unix сказал нам, что он сделал некоторую конфигурацию на своей стороне, чтобы мы могли это сделать. ... (14 ответов)

Обсуждение начато: TheGunMan

14 ответов

4. Программирование оболочки и сценарии

Я прочитал здесь следующий пост и не получил вывода от команды. Я пробовал изменить «3 доллара» на 5, 7, 10 ... и все равно ничего.В конечном итоге я бы хотел определить, кому принадлежит файл, и переименовать его в file_name_ $ USERNAME. $ uname -a SunOS sun001 5.10 Generic_118833-33 sun4u sparc ... (3 ответа)

Обсуждение началось: nadeemsm

3 ответов

5. Программирование оболочки и сценарии

привет, как я могу получить владельца файла (не uid) на платформе Windows. "getpwuid" не работает в Windows. Я знаю, что он работает на unix. Благодарю. (2 ответа)

Обсуждение началось: shellwell

2 ответов

6.UNIX для продвинутых и опытных пользователей

На данный момент я просто использую `ls -o` (с` cut`), но, очевидно, ls дает мне гораздо больше результатов, чем просто владелец файла. (9 ответов)

Обсуждение началось: Bilge

9 ответов

7. Solaris

Привет, народ! Я знаю, что смена пользователей и групп - это довольно простой админ, но это меня поставило в тупик. Когда я пытаюсь изменить группу файла, владельцем которого я являюсь, мне все равно выдается ошибка «Не владелец».Например, когда я вхожу в систему как «веб-администратор», у меня есть следующий файл: ... (4 ответов)

Обсуждение началось: brizrobbo

4 ответов

8. UNIX для чайников. Вопросы и ответы

Я меняю владельца файла. Я пытаюсь сменить владельца на «систему», но это не работает. я sudo chown system /preferences.plist Пароль: chown: system: недопустимый аргумент есть ли способ прочитать право собственности на файл, например читай чоун... (3 ответа)

Обсуждение началось: CBarraford

3 ответов

9. UNIX для чайников. Вопросы и ответы

Как сменить владельца файла? Могу ли я изменить владельца файла / файлов? Я пользователь, а не администратор. (Не зарегистрирован как root) (1 ответ)

Обсуждение началось: redlotus72

1 ответов

10. Программирование оболочки и сценарии

Как мне определить, есть ли у меня разрешение на запись в каталоге, внутри каталога.test -w pwd; эхо? Это не работает, поскольку возвращает false, хотя у меня есть разрешение на запись. (4 ответов)

Обсуждение началось: Sniper Pixie

4 ответов

.

Как мне изменить владельца общей папки?

Как сменить владельца общей папки

Если вы являетесь владельцем общей папки, вы можете передать право собственности другому участнику, изменив параметры папки на сайте dropbox.com. После смены владельца новый владелец будет единственным человеком, который может отменить общий доступ к папке или удалить участников.

Примечание : Вы должны быть текущим владельцем общей папки для передачи права собственности.

Передайте право собственности на общую папку в Dropbox.com

  1. Войдите на dropbox.com.
  2. Щелкните Все файлы на левой боковой панели.
  3. Найдите общую папку, которую вы хотите изменить.
  4. Наведите указатель мыши на имя папки и щелкните Поделиться.
  5. Щелкните [x] человек имеют доступ .
  6. Щелкните стрелку раскрывающегося списка рядом с именем члена команды, которому вы хотите передать право собственности.
  7. Выберите Сделайте владельцем и подтвердите свой выбор.

Передача права собственности на общую папку на вашем компьютере

  1. Откройте папку Dropbox.
  2. Щелкните правой кнопкой мыши или правой кнопкой мыши общую папку, которую вы хотите изменить.
  3. Выбрать Поделиться…
  4. Рядом с именем участника щелкните раскрывающийся список и выберите Сделать владельцем .
  5. Нажмите Поделиться .

Мне нужно знать, кому принадлежит общая папка

Вы можете узнать, кто является владельцем папки в параметрах папки:

  1. Войдите в Dropbox.com.
  2. Щелкните Все файлы на левой боковой панели.
  3. Найдите общую папку, которую вы хотите изменить.
  4. Наведите указатель мыши на имя папки и щелкните Поделиться .
  5. Щелкните [x] человек имеют доступ .
  6. Всплывающее окно показывает всех участников общей папки. Рядом с именем владельца будет указано «Владелец».

Примечание : Если вы не видите владельца в списке, это означает, что папка принадлежит либо администраторам группы, либо участнику за пределами вашей группы.

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

.

Как определить размер файла при удаленной загрузке без чтения всего файла с помощью R

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
.

Смотрите также