Как я полностью отключаю учетную запись?

Никто еще не упомянул, что можно использовать dd для создания редких файлов, хотя truncate может также использоваться для той же цели.

dd if=/dev/zero of=sparse-file bs=1 count=1 seek=10GB

Это почти мгновенно и создает произвольный большой файл, который может использоваться в качестве петлевого файла, например:

loop=`losetup --show -f sparse-file`
mkfs.ext4 $loop
mkdir myloop
mount $loop myloop

Хорошая вещь состоит в том, что это первоначально только использует единственный блок дискового пространства и после этого растет только по мере необходимости (ext4, форматирование файла на 10 ГБ использует 291 МБ в моей системе). Использовать du видеть, сколько дискового пространства на самом деле используется- ls отчеты только максимальный размер файл могут вырасти до.

49
03.04.2014, 04:37
6 ответов

Корректный путь согласно usermod(8) :

usermod --lock --expiredate 1970-01-02 <username>

(На самом деле, аргумент --expiredate может быть любая дата перед текущей датой в формате YYYY-MM-DD.)


Объяснение:

  • --lock блокирует пароль пользователя. Однако вход в систему другими методами (например, открытый ключ) все еще возможен.

  • --expiredate YYYY-MM-DD отключает учетную запись в указанную дату. Согласно man shadow 5 01.01.1970 неоднозначное значение и не будет использоваться.

Я протестировал это на своей машине. Ни вход в систему с паролем, ни открытый ключ не возможны после выполнения этой команды.


Чтобы повторно включить учетную запись позднее, можно работать:

usermod --unlock --expiredate '' <username>
61
27.01.2020, 19:34
  • 1
    Не используйте 01.01.1970, поскольку это установит/etc/shadow поле истечения на 0. тень (5) значение 0 не должно использоваться, поскольку это интерпретируется или как учетная запись без истечения, или как истечение на Jan 1, 1970. Используйте: usermod - блокировка - expiredate 02.02.1970 <имя пользователя> –  Marcus Maxwell 01.09.2014, 13:52
  • 2
    Было бы замечательно, если Вы могли бы также предоставить метод для инвертирования этой операции. Похож usermod --unlock --expiredate '' username сделает это. –  Bob 22.10.2014, 12:39
  • 3
    Было бы замечательно, если Вы могли бы также предоставить метод для инвертирования этой операции. Похож usermod --unlock --expiredate '' username сделает это. –  Bob 22.10.2014, 12:39
  • 4
    Добавление к тому, что записал @MarcusMaxwell: страница справочника для usermod говорит: Note: if you wish to lock the account (not only access with a password), you should also set the EXPIRE_DATE to 1. –  Zero3 23.05.2016, 00:58
  • 5
    Почему --expiredate 1 недостаточно самостоятельно? –  Thomas Jensen 13.08.2017, 13:26
  • 6
    Но sudo su username кажется, работает с помощью другой учетной записи. –  xuhdev 14.09.2017, 07:48

Заблокируйте пароль и измените оболочку на /bin/nologin.

sudo usermod --lock --shell /bin/nologin username

(Или более кратко, sudo usermod -L -s /bin/nologin username.)

10
27.01.2020, 19:34
  • 1
    Как делают я 'изменяю оболочку на/bin/nologin'.? –   20.02.2011, 05:47
  • 2
    @mattdm с закрытым ключом Это не полное решение, поскольку пользователь может все еще указать команду, которая будет выполняться. Например, ssh username@hostname /bin/bash даст пользователю подсказку удара, независимо от оболочки по умолчанию. –  phunehehe 20.02.2011, 06:07
  • 3
    @phunehehe — Вы попробовали его? Вы доберетесь в журнале, "Пользователь [имя пользователя], не позволенное, потому что оболочка/bin/nologin не существует". –  mattdm 20.02.2011, 15:56
  • 4
    Насколько я знаю, поведение недопустимой оболочки на самом деле не документируется. С другой стороны, в странице справочника говорится, что, если пароль, имеет продвижение!! на Linux учетную запись будут рассматривать, как заблокировано, и это на самом деле не работает. Так, y'know, документация и действительность являются только приблизительными соответствиями так или иначе. :) –  mattdm 20.02.2011, 17:35
  • 5
    sudo chsh -s /bin/nologin было бы лучше, чем редактирование /etc/passwd вручную. Кроме того, в некоторых системах это /sbin/nologin. –  Mikel 20.02.2011, 23:42

Для удаления полностью его используют userdel.

Обратите внимание на то, что при удалении учетной записи существует риск, что его идентификатор пользователя будет все еще использоваться в файловой системе где-нибудь, и новый пользователь наследовал бы владение тех файлов, если бы это вошло под тем же самым идентификатором пользователя.

Вы хотели бы изменить владельца любых файлов, которые принадлежат удаленному пользователю.

Если требуется добавить пользователя назад позже, сохраните его строки от /etc/passwd (и на Солярисе /etc/shadow) во временные файлы такой как /etc/passwd_deleted.

Тот путь, когда Вы добавляете его назад, можно использовать тот же идентификатор пользователя и тот же пароль (который шифруется в одном из вышеупомянутых файлов),

Отказ от ответственности: Я изучил UNIX самостоятельно, таким образом, я не буду удивлен, существует ли лучший способ временно отключить пользователя. На самом деле я даже не знаю то, что частные / открытые ключи - Вы, говорят о. Также я уверен, что существует a find команда, которая может использоваться для поиска файлов с тем идентификатором пользователя владельца

1
27.01.2020, 19:34
  • 1
    google authorized_keys или попытка, читая этот eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html в основном вместо того, чтобы использовать пароль, Вы помещаете свой publuc, вводят тот файл и когда Вы соединитесь с ssh, Вы автоматически будете зарегистрированы, если тот общественности будет соответствовать, Ваш текущий –   20.02.2011, 05:50

Кто-либо попытался делать его через ssh_config? Возможно, это могло помочь http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86

Кроме того, удостоверьтесь, что PasswordAuthentication установлен на не также, чтобы вынудить все логины использовать открытые ключи.

0
27.01.2020, 19:34

Согласно этой статьи , основное отличие этой и обычной дублирующей (⌘D) функции состоит в том, что сохраняется право собственности на файл. Обычная дублирующая функция сохраняет права доступа к файлам, но не права собственности.

Наилучшим эквивалентом этого поведения в OSX является команда ditto . Вы можете просто использовать sudo ditto src dst и сохранить все по умолчанию. Sudo необходима, если необходимо сохранить право собственности на файлы. Если вы копируете каталог и dst уже существует, вы должны знать, что он будет объединен вместо создания нового каталога dst/src . Ditto также способен создавать архивы формата cpio или zip, поясняется в manpage.

Приведенные ниже ответы в основном относятся к другим системам UNIX и могут не сохранять форк ресурсов или другие специфичные для HFS атрибуты в некоторых версиях OSX.


Во-первых, следует отметить, что любая из этих команд может сохранять право собственности только при запуске от имени root (например, с помощью sudo или su в зависимости от системы. Команда sudo существует в OSX.). Если файл не запущен от имени root, большинство из них сохранят все возможные атрибуты, но файл будет принадлежать вашему идентификатору пользователя.

Команда cp -a сохраняет максимально возможный заповедник, включая разрешения, права собственности (если корневые), метки времени и символьные ссылки. Хотя -a поддерживается во многих системах (она также сохраняет жесткие ссылки на GNU, но не на OSX), она не поддерживается в POSIX. Ближайшая эквивалентная команда POSIX - cp -pPR - соответствующий стандартный вариант сохранения разрешений и владения - p , но для копирования символьных ссылок требуется P , а для копирования каталогов - R .

Лучший способ копирования при сохранении жестких ссылок и других расширенных атрибутов, которые cp может не обрабатывать, - использовать команду pax: pax -rwpe src dstdir . Это не позволяет изменить имя исходного файла, и конечный каталог уже должен существовать. Он создаст копию как dstdir/src, поэтому для достижения идеальных результатов необходимо выполнить ее из каталога, в котором находится исходный файл.

В некоторых системах pax может не существовать, и в этом случае можно использовать tar: tar cf - srcfiles | (cd dstdir; [sudo] tar xf -) . То же самое относится к имени файла и каталогам источника и назначения, что и к pax.

-121--102700-

Ниже сортировка / авк тандем делает это:

sort -n | awk '{a[i++]=$0;s+=$0}END{print a[0],a[i-1],(a[int(i/2)]+a[int((i-1)/2)])/2,s/i}'

(вычисляет медиану как среднее из двух центральных значений, если счетчик значений четный)

-121--4032-

Вот еще один простой способ. Можно задать учетную запись пользователя с истекшим сроком действия. Это предотвратит вход в учетную запись как на основе пароля, так и на основе ключа ssh, но не коснется пароля.

Чтобы заблокировать учетную запись:

# chage -E 0 username

Учетная запись пользователя «имя пользователя» будет заблокирована в системе.Чтобы повторно включить учетную запись пользователя, выполните следующие действия.

Чтобы разблокировать учетную запись:

# chage -E -1 username

Имя пользователя будет повторно включено в системе с тем же паролем , что и ранее. Двоичный файл chage является частью пакета shadow-utils в Red Hat Linux или пакета passwd в Debian Linux.

3
27.01.2020, 19:34

У меня недостаточно представителей, чтобы прокомментировать ответ Легата, но я хотел бы поделиться, что этот ответ помог нам с другим вариантом использования:

1.) Рассматриваемая учетная запись является локальной учетной записью службы, запускающей приложение, а не учетной записью конечного пользователя.

2.) Конечные пользователи ssh в качестве самих себя и sudo / bin / su , чтобы стать пользователем и администрировать приложение из-за требования журнала аудита, что учетная запись службы не может иметь возможность прямого входа в систему.

3.) Служебная учетная запись должна иметь допустимую оболочку ( / bin / bash , а не / sbin / nologin ), потому что платформа планирования предприятия (агент запускается локально от имени пользователя root) должен иметь возможность su - и не иметь возможности su -s / bin / bash , которую делает полная оболочка, и необходим для удаленного выполнения заданий для более крупных пакетных операций, охватывающих несколько серверов и баз данных.


Итак ...

passwd -l
Не удовлетворяет ограничениям, потому что аутентификация с открытым ключом обходит PAM и по-прежнему позволяет прямой вход.

usermod -s / sbin / nologin
Не удовлетворяет ограничениям, потому что нарушает корпоративный планировщик

usermod --lock --expiredate 01.01.1970
Это наш победитель . Удаленный вход в систему отключен, но root все еще может su , как и другие пользователи через sudo , поэтому планировщик функционирует должным образом, а авторизованные конечные пользователи могут стать целевой учетной записью службы по мере необходимости.

Спасибо за решение!

3
27.01.2020, 19:34

Теги

Похожие вопросы