Enfoque alternativo con sort
+head
:
sort -t'-' -k3nr file | head -1
La salida:
chizzle-rock-115-green
With a default of 002, any user in the group associated with my username will be able to edit my files.
Идея не в том, чтобы в личной группе пользователя были другие пользователи. Идея состоит в том, что могут быть группы для проектов или подобных, и в них может входить несколько пользователей в качестве членов. В этом случае групповым владельцем файлов может быть проект (, а не кто-либо из пользователей лично ), что обеспечивается setgid в каталоге проекта. С umask, разрешающим доступ на запись к группе, такие файлы будут доступны для записи всем членам проектной группы.
Это работает примерно так, если предположить, что foo
— пользователь, использующий umask002
:
# [add user foo to group proj] # mkdir /work/proj # chmod u=rwx,g=rwx,o=,g+s /work/proj # ls -ld /work/proj drwxrws--- 2 root proj 4096 Jun 14 17:48 /work/proj/ $ umask 0002 $ cd /work/proj $ echo "some data here" > file.txt $ ls -l file.txt -rw-rw-r-- 1 foo proj 15 Jun 14 17:51 file.txt
Обратите внимание, как файл был создан a )с владельцем группыproj
(из-за setgid в каталоге )и b )с разрешением на запись для всей группы (из-за умаска ). Вместо того, чтобы требовать от пользователей наличия надлежащего umask, для каталога можно настроить ACL по умолчанию , который заменяет функцию umask, если он установлен.
Подробнее о -группах пользователей и umask по крайней мере здесь и в руководствах Red Hat(Это руководство для RHEL 4, более новые, кажется, более кратки причина. )Также связан с этим q:Почему у каждого пользователя есть своя группа?
Ничто здесь не мешает пользователям вручную испортить разрешения. Это нельзя предотвратить, поскольку владелец файла всегда может изменить разрешения по своему усмотрению. В настоящее время люди также чаще используют сетевые сервисы для совместной работы, и такая гимнастика с правами доступа к файлам и каталогам не нужна.