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

У этого вопроса уже есть ответ здесь: Как я могу получить помощь в командах терминала? 9 ответов Как найти владельца и группу каталога? 4 ответа Как я могу просмотреть разрешения для определенного каталога? 2 ответа

Просто полностью переключился с Windows на Ubuntu, и я счастлив.

У меня проблема; есть папка с именем /root. Я хочу знать, как я мог бы использовать команду ls, чтобы узнать владельца и группу, связанные с этой папкой, и какие права у них есть.

0
задан 23 January 2018 в 09:37

9 ответов

Интересно, почему это «проблема». Каталог /root является домашним каталогом пользователя root, и вам обычно ничего не нужно делать. Соответственно, у него нет разрешения на выполнение для обычных пользователей, что означает, что вы не можете ввести его или перечислить его содержимое. Это не то, что вам следует изменить по соображениям безопасности.

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

man command

. В man ls ll find

-d, --directory
       list directories themselves, not their contents

Сравните эффекты:

$ ls /root
ls: cannot open directory '/root': Permission denied
$ sudo !!
sudo ls /root
[sudo] password for zanna: 
snap
$ ls -d /root
/root

Мне нужно разрешение root (полученное только для одной команды при запуске sudo command), чтобы отобразить содержимое этого каталога , но не перечислять сам каталог. Это связано с тем, что у меня есть разрешение на выполнение в родительском каталоге /root, / (часто путано называемый корневым каталогом, так как он является «корнем» файловой системы, из которого отключается остальные).

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

Также в man ls показан инструмент для отображения разрешений, но совершенно не очевидно, какой из них он есть, поэтому вы можете захотеть попробуйте запустить info ls, который показывает, в разделе, объясняющем, какую информацию каждый параметр вызывает для показа, документация для опции -l:

‘-l’
‘--format=long’
‘--format=verbose’
     In addition to the name of each file, print the file type, file
     mode bits, number of hard links, owner name, group name, size, and
     timestamp (*note Formatting file timestamps::), normally the
     modification time.  Print question marks for information that
     cannot be determined.

Это все еще не очень ясно! Знаете ли вы, что «бит режима файла» означает разрешения? Команда chmod является аббревиатурой самой директории . Теперь ты знаешь. Итак, давайте попробуем варианты вместе. Я аннотировал вывод:

$ ls -dl /root       #note that the order of options does not matter here
drwx------ 8 root root 4096 Dec 17 14:06 /root
^ ^  ^  ^  ^  ^     ^    ^   ^   ^    ^     ^--file name
| |  |  |  |  |     |    |   |   |    |--last modified time
| |  |  |  |  |     |    |   |   |--day of month
| |  |  |  |  |     |    |   |--name of month *
| |  |  |  |  |     |    |--size
| |  |  |  |  |     |--group
| |  |  |  |  |--owner
| |  |  |  |--number of hard links to this file
| |  |  |--permission bits for "others" (any user/program)
| |  |--permission bits for group
| |--permission bits for owner
|--file type (d=directory)

* Зависит от настроек локали. Если вы используете неанглийский язык, вы можете получить вывод на английском языке для любой команды, запустив LC_ALL=C ls -dl /root

. См. Wiki для тегов для получения информации о том, как интерпретировать «бит режима». ls -l отображает символическую нотацию для разрешений, где r = доступ для чтения, w = доступ на запись, x = исполняемый файл, а - не указывает разрешения. Они имеют разные эффекты для каталогов и обычных файлов. Для каталогов доступ на чтение позволяет указать содержимое каталога, если бит разрешения x также установлен, бит x позволяет ввести каталог, а w позволяет удалить файлы в каталоге, созданный и переименованный, если бит x также установлен. Это помогает вспомнить, что каталог - это файл, в котором хранится список файлов - поэтому вам нужно иметь разрешение на запись в каталоге для создания, переименования или удаления его содержимого - эти действия меняют список. Это разрешение также позволяет принудительно записывать другие изменения в файлы внутри каталога.

Если нас интересуют только владельцы и разрешения, ls -l дает нам слишком много информации. Существует более гибкая команда для отображения метаданных файлов; это stat. Вы можете использовать его для указания владельца (%U) (u для пользователя - большинство утилит командной строки вызывают владельца файла пользователя. В chmod, например, u = owner и o = others - убедитесь, что вы 't предоставить разрешения для o, когда вы только хотите дать им u!), группу (%G) и разрешить список в восьмеричной или символической нотации:

$ stat -c "%U %G %a" /root
root root 700
$ stat -c "%U %G %A" /root
root root drwx------

См. [ f34] для многих других вещей stat может рассказать вам о файлах.

4
ответ дан 22 May 2018 в 15:23
  • 1
    Я ценю ваше подробное объяснение. До сих пор вы только что сгладили мой опыт работы с Ubuntu! – Frank 22 January 2018 в 15:55
  • 2
    @Frank здорово услышать, что это было полезно для вас :) – Zanna 22 January 2018 в 16:54

Интересно, почему это «проблема». Каталог /root является домашним каталогом пользователя root, и вам обычно ничего не нужно делать. Соответственно, у него нет разрешения на выполнение для обычных пользователей, что означает, что вы не можете ввести его или перечислить его содержимое. Это не то, что вам следует изменить по соображениям безопасности.

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

man command

. В man ls ll find

-d, --directory list directories themselves, not their contents

Сравните эффекты:

$ ls /root ls: cannot open directory '/root': Permission denied $ sudo !! sudo ls /root [sudo] password for zanna: snap $ ls -d /root /root

Мне нужно разрешение root (полученное только для одной команды при запуске sudo command), чтобы отобразить содержимое этого каталога , но не перечислять сам каталог. Это связано с тем, что у меня есть разрешение на выполнение в родительском каталоге /root, / (часто путано называемый корневым каталогом, так как он является «корнем» файловой системы, из которого отключается остальные).

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

Также в man ls показан инструмент для отображения разрешений, но совершенно не очевидно, какой из них он есть, поэтому вы можете захотеть попробуйте запустить info ls, который показывает, в разделе, объясняющем, какую информацию каждый параметр вызывает для показа, документация для опции -l:

‘-l’ ‘--format=long’ ‘--format=verbose’ In addition to the name of each file, print the file type, file mode bits, number of hard links, owner name, group name, size, and timestamp (*note Formatting file timestamps::), normally the modification time. Print question marks for information that cannot be determined.

Это все еще не очень ясно! Знаете ли вы, что «бит режима файла» означает разрешения? Команда chmod является аббревиатурой самой директории . Теперь ты знаешь. Итак, давайте попробуем варианты вместе. Я аннотировал вывод:

$ ls -dl /root #note that the order of options does not matter here drwx------ 8 root root 4096 Dec 17 14:06 /root ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^--file name | | | | | | | | | | |--last modified time | | | | | | | | | |--day of month | | | | | | | | |--name of month * | | | | | | | |--size | | | | | | |--group | | | | | |--owner | | | | |--number of hard links to this file | | | |--permission bits for "others" (any user/program) | | |--permission bits for group | |--permission bits for owner |--file type (d=directory)

* Зависит от настроек локали. Если вы используете неанглийский язык, вы можете получить вывод на английском языке для любой команды, запустив LC_ALL=C ls -dl /root

. См. Wiki для тегов для получения информации о том, как интерпретировать «бит режима». ls -l отображает символическую нотацию для разрешений, где r = доступ для чтения, w = доступ на запись, x = исполняемый файл, а - не указывает разрешения. Они имеют разные эффекты для каталогов и обычных файлов. Для каталогов доступ на чтение позволяет указать содержимое каталога, если бит разрешения x также установлен, бит x позволяет ввести каталог, а w позволяет удалить файлы в каталоге, созданный и переименованный, если бит x также установлен. Это помогает вспомнить, что каталог - это файл, в котором хранится список файлов - поэтому вам нужно иметь разрешение на запись в каталоге для создания, переименования или удаления его содержимого - эти действия меняют список. Это разрешение также позволяет принудительно записывать другие изменения в файлы внутри каталога.

Если нас интересуют только владельцы и разрешения, ls -l дает нам слишком много информации. Существует более гибкая команда для отображения метаданных файлов; это stat. Вы можете использовать его для указания владельца (%U) (u для пользователя - большинство утилит командной строки вызывают владельца файла пользователя. В chmod, например, u = owner и o = others - убедитесь, что вы 't предоставить разрешения для o, когда вы только хотите дать им u!), группу (%G) и разрешить список в восьмеричной или символической нотации:

$ stat -c "%U %G %a" /root root root 700 $ stat -c "%U %G %A" /root root root drwx------

См. man stat для многих других вещей stat может рассказать вам о файлах.

4
ответ дан 17 July 2018 в 22:30

Интересно, почему это «проблема». Каталог /root является домашним каталогом пользователя root, и вам обычно ничего не нужно делать. Соответственно, у него нет разрешения на выполнение для обычных пользователей, что означает, что вы не можете ввести его или перечислить его содержимое. Это не то, что вам следует изменить по соображениям безопасности.

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

man command

. В man ls ll find

-d, --directory list directories themselves, not their contents

Сравните эффекты:

$ ls /root ls: cannot open directory '/root': Permission denied $ sudo !! sudo ls /root [sudo] password for zanna: snap $ ls -d /root /root

Мне нужно разрешение root (полученное только для одной команды при запуске sudo command), чтобы отобразить содержимое этого каталога , но не перечислять сам каталог. Это связано с тем, что у меня есть разрешение на выполнение в родительском каталоге /root, / (часто путано называемый корневым каталогом, так как он является «корнем» файловой системы, из которого отключается остальные).

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

Также в man ls показан инструмент для отображения разрешений, но совершенно не очевидно, какой из них он есть, поэтому вы можете захотеть попробуйте запустить info ls, который показывает, в разделе, объясняющем, какую информацию каждый параметр вызывает для показа, документация для опции -l:

‘-l’ ‘--format=long’ ‘--format=verbose’ In addition to the name of each file, print the file type, file mode bits, number of hard links, owner name, group name, size, and timestamp (*note Formatting file timestamps::), normally the modification time. Print question marks for information that cannot be determined.

Это все еще не очень ясно! Знаете ли вы, что «бит режима файла» означает разрешения? Команда chmod является аббревиатурой самой директории . Теперь ты знаешь. Итак, давайте попробуем варианты вместе. Я аннотировал вывод:

$ ls -dl /root #note that the order of options does not matter here drwx------ 8 root root 4096 Dec 17 14:06 /root ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^--file name | | | | | | | | | | |--last modified time | | | | | | | | | |--day of month | | | | | | | | |--name of month * | | | | | | | |--size | | | | | | |--group | | | | | |--owner | | | | |--number of hard links to this file | | | |--permission bits for "others" (any user/program) | | |--permission bits for group | |--permission bits for owner |--file type (d=directory)

* Зависит от настроек локали. Если вы используете неанглийский язык, вы можете получить вывод на английском языке для любой команды, запустив LC_ALL=C ls -dl /root

. См. Wiki для тегов для получения информации о том, как интерпретировать «бит режима». ls -l отображает символическую нотацию для разрешений, где r = доступ для чтения, w = доступ на запись, x = исполняемый файл, а - не указывает разрешения. Они имеют разные эффекты для каталогов и обычных файлов. Для каталогов доступ на чтение позволяет указать содержимое каталога, если бит разрешения x также установлен, бит x позволяет ввести каталог, а w позволяет удалить файлы в каталоге, созданный и переименованный, если бит x также установлен. Это помогает вспомнить, что каталог - это файл, в котором хранится список файлов - поэтому вам нужно иметь разрешение на запись в каталоге для создания, переименования или удаления его содержимого - эти действия меняют список. Это разрешение также позволяет принудительно записывать другие изменения в файлы внутри каталога.

Если нас интересуют только владельцы и разрешения, ls -l дает нам слишком много информации. Существует более гибкая команда для отображения метаданных файлов; это stat. Вы можете использовать его для указания владельца (%U) (u для пользователя - большинство утилит командной строки вызывают владельца файла пользователя. В chmod, например, u = owner и o = others - убедитесь, что вы 't предоставить разрешения для o, когда вы только хотите дать им u!), группу (%G) и разрешить список в восьмеричной или символической нотации:

$ stat -c "%U %G %a" /root root root 700 $ stat -c "%U %G %A" /root root root drwx------

См. man stat для многих других вещей stat может рассказать вам о файлах.

4
ответ дан 23 July 2018 в 23:09
ls -dl /root

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

Опция -l указывает, что нужно предоставить длинный список, то есть разрешения, владельца и группа. Первые три разрешения для владельца, вторая тройка для группы и третья - для всех остальных.

1
ответ дан 22 May 2018 в 15:23
Для проверки разрешений введите в командной строке:

ls -dl

Это перечислит вам все папки и файлы текущего пути вы находитесь в

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

Первая буква = тип файла (здесь d = каталог / папка), затем 3х3 письмо для разрешения первых 3 букв = Права владельца вторых 3 букв = разрешения [d2!]

из третьей группы 3 букв = разрешение всех остальных

буквы RWX

первые 3 букв = разрешения владельца ш = разрешения записи [d7 ] второй 3 буквы = права доступа группы

, если есть -! разрешение не установлено / дано

в моем примере владелец имеет все права доступа, группа и другим не разрешено писать (но читать и выполнять)

1
ответ дан 22 May 2018 в 15:23
  • 1
    Zanna, вы правы, и ваш ответ намного лучше моего (я только начал писать 4 недели назад), и я попытался ответить в моих словах. Теперь Changend это к ls -dl. Не ожидайте получить downvotes. Может быть, лучше не отвечать на вопросы. – Martin Loeffler 22 January 2018 в 16:52
  • 2
    теперь ваш ответ очень полезен, потому что он четко объясняет символическую нотацию: – Zanna 22 January 2018 в 16:53
  • 3
    спасибо. Сначала я попытаюсь научиться кодировать и возвращаться к ответу – Martin Loeffler 22 January 2018 в 16:58
ls -dl /root

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

Опция -l указывает, что нужно предоставить длинный список, то есть разрешения, владельца и группа. Первые три разрешения для владельца, вторая тройка для группы и третья - для всех остальных.

1
ответ дан 17 July 2018 в 22:30

Чтобы проверить тип разрешений в командной строке:

ls -dl

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

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

Первая буква = тип файла (здесь d = каталог / папка), а затем 3x3 для разрешений

первые 3 буквы = разрешения владельца второй 3 буквы = разрешения третьей третьей буквы = разрешение всех остальных

буквы: rwx

первые 3 буквы = разрешения владельца w = разрешение на запись second 3 letters = permissions группы

, если есть - разрешение не установлено / задано

, в моем примере у владельца есть все разрешения, группа и другим не разрешено писать (но читать и выполнять)

1
ответ дан 17 July 2018 в 22:30
ls -dl /root

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

Опция -l указывает, что нужно предоставить длинный список, то есть разрешения, владельца и группа. Первые три разрешения для владельца, вторая тройка для группы и третья - для всех остальных.

1
ответ дан 23 July 2018 в 23:09

Чтобы проверить тип разрешений в командной строке:

ls -dl

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

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

Первая буква = тип файла (здесь d = каталог / папка), а затем 3x3 для разрешений

первые 3 буквы = разрешения владельца второй 3 буквы = разрешения третьей третьей буквы = разрешение всех остальных

буквы: rwx

первые 3 буквы = разрешения владельца w = разрешение на запись second 3 letters = permissions группы

, если есть - разрешение не установлено / задано

, в моем примере у владельца есть все разрешения, группа и другим не разрешено писать (но читать и выполнять)

1
ответ дан 23 July 2018 в 23:09
  • 1
    Zanna, вы правы, и ваш ответ намного лучше моего (я только начал писать 4 недели назад), и я попытался ответить в моих словах. Теперь Changend это к ls -dl. Не ожидайте получить downvotes. Может быть, лучше не отвечать на вопросы. – Martin Loeffler 22 January 2018 в 16:52
  • 2
    теперь ваш ответ очень полезен, потому что он четко объясняет символическую нотацию: – Zanna 22 January 2018 в 16:53
  • 3
    спасибо. Сначала я попытаюсь научиться кодировать и возвращаться к ответу – Martin Loeffler 22 January 2018 в 16:58

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

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