Сначала немного фона:
Процесс обычно запускается конкретным пользователем.Например, если вы вошли в систему и запустили программу, она будет работать с теми же привилегиями, что и вы.Вы можете проверить разрешения для файла с помощью stat
или ls -l
.
Используя stat
malbert@dredg:/tmp$ stat foo
File: `foo'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fb00h/64256d Inode: 618 Links: 1
Access: (0644/-rw-r--r--) Uid: (11204/ malbert) Gid: (10513/domain users)
Access: 2011-06-10 13:03:27.181227226 +0200
Modify: 2011-06-10 13:03:27.181227226 +0200
Change: 2011-06-10 13:03:27.181227226 +0200
Важная информация здесь:
Access: (0644/-rw-r--r--) Uid: (11204/ malbert) Gid: (10513/domain users)
Здесь указываются разрешения для владельца (rw-
), группы (r--
) и всех остальных (r--
).Он также показывает текущий идентификатор владельца (Uid
) и идентификатор текущей группы (Gid
).
Сокращения означают:
r
= доступ для чтения w
= доступ на запись x
= выполнение / перемещение к каталогу
Использование ls -l
ls -l
даетвам краткое резюме:
malbert@dredg:/tmp$ ls -l /tmp
total 48
drwx------ 2 malbert domain users 4096 2011-06-10 08:51 akonadi-malbert.zOSngu
-rw-r--r-- 1 malbert domain users 0 2011-06-10 13:03 foo
drwx------ 2 kdm nogroup 4096 2011-06-10 08:51 kde-kdm
drwx------ 3 malbert domain users 4096 2011-06-10 08:51 kde-malbert
[snip]
Здесь вы можете увидеть ту же информацию, что и с stat
, но в виде резюме.Кроме того, uid и gid разрешаются в имена (в данном случае malbert
и domain users
).Вы можете использовать ls -u
, чтобы видеть их как числовые значения.
Если вы хотите запускать приложение как другой пользователь от своего имени, вы можете использовать su
, sudo
или само ваше приложение может удалить привилегии и изменить пользователя, от имени которого оно работает.Обычно так работают системные демоны.
ACL / расширенные атрибуты
Будьте осторожны с расширенными атрибутами.При перечислении файлов с использованием ls -l
они видны с добавленным знаком +
.Например:
malbert@dredg:/tmp$ ls -l
total 48
drwx------ 2 malbert domain users 4096 2011-06-10 08:51 akonadi-malbert.zOSngu
-rw-rwxr--+ 1 malbert domain users 0 2011-06-10 13:03 foo
drwx------ 2 kdm nogroup 4096 2011-06-10 08:51 kde-kdm
drwx------ 3 malbert domain users 4096 2011-06-10 08:51 kde-malbert
[snip]
Обратите внимание на следующую строку:
-rwxr--+ 1 malbert domain users 0 2011-06-10 13:03 foo
Знак +
-rwxr--+
указывает на расширенные атрибуты.Возможно, что это ACL.В документации SuSE отличный документ по ACL .Иди посмотри на это, если нужно.Разъяснение списков ACL наверняка взорвало бы эту статью, поэтому я не буду обсуждать их.
Расширенные атрибуты также могут быть связаны с файловой системой.См. справочную страницу chattr для получения дополнительной информации об этом.
Теперь, в качестве обозначения: это StackOverflow.Вопросы должны быть связаны с развитием.Для вопросов, подобных этому, есть http://www.serverfault.com. Но поскольку вы не знали, что это не проблема разработки, а больше относится к ОС, я чувствовал, что должен ответить в любом случае;)
Хорошоудачи и веселья!