Я просто хочу знать, как я могу найти в папке, файлы, которые не имеют никакого разрешения группового пользователя (не читал/писал/выполнял), вообще, с помощью терминала.
Можно использовать:
find . \! -perm /070
Или:
find . \! -perm /g+rwx
Это работает потому что:
Когда операнд -perm
тест запускается с /
, это вызывает -perm
протестировать, если какие-либо из указанных полномочий присутствуют.
(Если Вы использовали -
вместо /
, это протестировало бы, если бы все присутствовали. Без символа префикса это протестировало бы на точно разрешение, указанное, т.е. все они и никакие другие присутствующие.)
Это - противоположность того, что Вы ищете - ни один не противоположность никого - и не оператор \!
инвертирует результат теста, который следует за ним.
(Оператор действительно !
, и можно, вероятно, записать этому тот путь, но это обычно пишется как \!
гарантировать, что оболочка передает его на find
вместо того, чтобы рассматривать его особенно.)
Что касается значения определенных строк после /
, посмотрите FilePermissions, эту статью Wikipedia, и/или man chmod
. Таким образом, в применении к командам, показанным выше:
070
восьмеричная строка полномочий, указывая полномочия для пользователя (т.е. владелец), группа и другой (т.е. все остальные), соответственно. 7 читается (4), запишите (2) и выполнитесь (1) полномочия (т.е. 111
имеет 1
биты в 100
, 010
, и 001
).g+rwx
символьная строка полномочий, указывая что группа (g
) читал (r
), запишите (w
), и выполнитесь (x
) полномочия.Какой бы ни нотация, которую Вы используете, помнят, что Вы выражаете противоположность того, что Вы в конечном счете хотите, так как результат теста отрицается !
.
Для нахождения любого файла в текущем каталоге или его подкаталогах для который ни один чтение группы запишите или выполнитесь, биты установлены, выполнены:
find . ! -perm /g+rwx
С легкими командами от Вашего частного выполненного терминала:
sudo df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -nogroup -ls