sed -ne '/^ *\(+1\)\{0,1\} *(\{0,1\} *301 *)\{0,1\} *209 *-\{0,1\}\( *[0-9]\)\{4\} *$/s/[^0-9]*//gp'
Единственный способ - создать каталог, в который пользователь не может писать. Создайте один файл в этом каталоге и дайте им разрешение на запись в этот файл. Они не смогут ни удалить файл, ни создать другой файл.Они также не смогут переименовать файл. Но они могут перезаписать файл и изменить метаданные файла (временные метки, разрешения и т. Д.), Если они владеют файлом.
chown root:root mydir
chmod 755 mydir
touch mydir/somefile
chown bob mydir/somefile
Мне это кажется совершенно бессмысленным. Разрешение пользователю иметь один файл не дает никаких преимуществ с точки зрения безопасности; может быть полезно, если вы дополнительно ограничите имя (как я здесь), но даже это кажется надуманным. Убедитесь, что вы решаете свою настоящую проблему, а не какое-то выдуманное бессмысленное ограничение .