chattr +i *
предотвратит даже корневую учетную запись от внесения изменений в файлы в каталоге (пока chattr -i *
выполняется).
На комментарии Slartibartfast несколько вещей необходимо знать о болтовне и неизменном атрибуте:
lsattr
к атрибутам дисплея почти таким же способом ls
владение дисплеев и полномочияCAP_LINUX_IMMUTABLE
флаг - чтобы сделать так Вы захотите установить libcap, но это - только справедливое предупреждение, что возможности плохо документируются (в лучшем случае)Наконец, я смог решить эту проблему. Эта статья мне очень помогла.
Вот что я сделал. На стороне SSSD все было настроено нормально, однако на стороне LDAP я не настраивал. Чтобы пользователи Unix (пользователи posix) работали правильно, мы должны создать группы posix и назначить соответствующие значения.
Для каждого пользователя, помимо присвоения идентификатора группы posix и идентификатора пользователя, необходимо также присоединить их к группе posix. Вы также можете добавить это из консоли администратора 389. При создании группы просто нажмите на раздел «posix group». Или из командной строки используйте эту статью
В моем случае были те же симптомы, но причина была более запутанной. Я следовал этому руководству , в котором предлагается настроить средства управления доступом к LDAP, чтобы убедиться, что никто-не может прочитать (зашифрованные)пароли с сервера LDAP, но при этом разрешить пользователям отредактировать некоторые из своих собственных атрибутов выбора (, таких как собственный пароль и фотография ), импортировав следующий LDIF:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=cn,givenName,sn,userPassword,shadowLastChange,mail,loginShell,photo by self write by anonymous auth by dn.base="cn=Manager,dc=example,dc=org" write by * none
olcAccess: {1}to * by self read by dn.base="cn=Manager,dc=example,dc=org" write by * read
Когда sssd выполняет поиск идентификатора группы в LDAP, он делает анонимный поисковый запрос, используя следующий фильтр (извлечено из журналов sssd, версия 1.16.5):
(&(memberuid=test)(objectClass=posixGroup)(cn=*)(&(gidNumber=*)(!(gidNumber=0))))
Для этого поискового запроса требуется доступ на чтение к атрибуту cn
, но анонимный пользователь имеет только доступ auth
, поэтому поиск завершается ошибкой, и sssd не может знать идентификатор группы. То же самое происходит с атрибутом loginShell
в другом поисковом запросе, поэтому зарегистрированные пользователи LDAP имеют оболочку по умолчанию (, которая оказывается csh вместо bash). Исправление: установлен доступ на чтение (вместо auth)к атрибутам cn
и loginShell
в базе данных LDAP (просто удалите их из первой attrs
строки):
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=givenName,sn,userPassword,shadowLastChange,mail,photo by self write by anonymous auth by dn.base="cn=Manager,dc=example,dc=org" write by * none
olcAccess: {1}to * by self read by dn.base="cn=Manager,dc=example,dc=org" write by * read
Возможно другие атрибуты (например, namedName)также следует удалить из первой строки attr
.