Как указано @Tyilo , @Sorpigal предлагает попробовать stat
, который кодирует «пользовательские флаги» с помощью%Xf
(он X кодирует пользователя f lag )и намного безопаснее для машинного разбора.
$ stat -f "%Xf" ~/Library
8000
Здесь находятся шестнадцатеричные значения для пользовательских флагов:grep UF /usr/include/sys/stat.h
. Начиная с macOS 10.11:
#define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */
#define UF_NODUMP 0x00000001 /* do not dump file */
#define UF_IMMUTABLE 0x00000002 /* file may not be changed */
#define UF_APPEND 0x00000004 /* writes to file may only append */
#define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */
/* #define UF_NOUNLINK 0x00000010 */ /* file may not be removed or renamed */
#define UF_COMPRESSED 0x00000020 /* file is hfs-compressed */
/* UF_TRACKED is used for dealing with document IDs. We no longer issue
notifications for deletes or renames for files which have UF_TRACKED set. */
#define UF_TRACKED 0x00000040
#define UF_HIDDEN 0x00008000 /* hint that this item should not be */
Достаточно было изменить один символ в одном файле, чтобы пользователь ubuntu
снова мог авторизоваться:
$ cd /path/to/mounted/volume
$ sudo nano etc/shadow
# Searh for the row that starts with "ubuntu:!"
# Change the "!" to "*", save, exit
После повторного -присоединения тома к сломанному экземпляру и его загрузки теперь можно было нормально войти в систему под пользователем ubuntu. Я до сих пор понятия не имею, почему этот пользователь был автоматически заблокирован. Что касается другого пользователя, который был создан, я предполагаю, что он был заблокирован, потому что у него был пустой пароль, но у меня нет ссылки, чтобы доказать это.