shell自動創建|管理用戶(useradd|usermod|chage|chown|chmod|chgrp)

useradd命令基礎

  • useradd 用來創建用戶帳號
  • 通過 passwd 設定帳號的密碼
  • userdel 刪除用戶帳號所有信息
  • useradd 創建的用戶信息,保存在 /etc/passwd 文件
用法:useradd [選項] 登錄
      useradd -D
      useradd -D [選項]

選項:
  -b, --base-dir BASE_DIR	    新賬戶的主目錄的基目錄
  -c, --comment COMMENT         新賬戶的 GECOS 字段
  -d, --home-dir HOME_DIR       新賬戶的家目錄
  -D, --defaults		        顯示或更改默認的 useradd 配置
  -e, --expiredate EXPIRE_DATE  新賬戶的過期日期
  -f, --inactive INACTIVE       新賬戶的密碼不活動期
  -g, --gid GROUP		        新賬戶主組的名稱或 ID
  -G, --groups GROUPS	        新賬戶的附加組列表
  -h, --help                    顯示此幫助信息並推出
  -k, --skel SKEL_DIR	        使用此目錄作爲骨架目錄
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默認值
  -l, --no-log-init	            不要將此用戶添加到最近登錄和登錄失敗數據庫
  -m, --create-home	            創建用戶的主目錄
  -M, --no-create-home		    不創建用戶的主目錄
  -N, --no-user-group	        不創建同名的組
  -o, --non-unique		        允許使用重複的 UID 創建用戶
  -p, --password PASSWORD	    加密後的新賬戶密碼
  -r, --system                  創建一個系統賬戶
  -R, --root CHROOT_DIR         chroot 到的目錄
  -s, --shell SHELL		        新賬戶的登錄 shell
  -u, --uid UID			        新賬戶的用戶 ID
  -U, --user-group		        創建與用戶同名的組
  -Z, --selinux-user SEUSER		爲 SELinux 用戶映射使用指定 SEUSER

命令行管理用戶

  • 添加用戶
 useradd    [參數]    用戶名
1、默認設置
# useradd redhat
# tail -n1 /etc/passwd
redhat:x:1001:1001::/home/redhat:/bin/bash
# id redhat
uid=1001(redhat) gid=1001(redhat) groups=1001(redhat)
2、指定用戶家目錄
# mkdir /data/
# useradd -d /data/centos/ centos 
# tail -n1 /etc/passwd
centos:x:1002:1002::/data/centos:/bin/bash
# id centos
uid=1002(centos) gid=1002(centos) groups=1002(centos)
3、指定用戶家目錄、用戶組(一定是已經存在的用戶組!)

# cat /etc/group | grep users    ## 查看已存在的 users 用戶組
users:x:100:

# useradd -d /data/ubuntu/ -g users ubuntu
# tail -n1 /etc/passwd
ubuntu:x:1003:100::/data/ubuntu/:/bin/bash
# id ubuntu
uid=1003(ubuntu) gid=100(users) groups=100(users)
## 常用的參數
-u    指定用戶uid

-g    指定用戶初始組信息,這個組必須已經存在

-G    指定附加組,這個組必須存在

-c    用戶說明

-d    用戶家目錄

-s    用戶所使用的shell,/etc/shells記錄了用戶能使用shell的名
  • 刪除用戶
userdel   -r   用戶名      ## -r 表示刪除用戶信息及用戶的系統配置
# userdel -r centos
  • 用戶信息更改
(5) 用戶信息更改

usermod   參數     用戶

		 -l      #  更改用戶名稱
		
		 -u      #  更改uid
		
		 -g      # 更改gid
		
		 -G      # 更改附加組
		
		 -aG     # 添加附加組
		
		 -c      # 更改說明
		
		 -d      # 更改家目錄指定
		
		 -md     # 更改家目錄指定及家目錄名稱
		
		 -s      # 更改shell
		
		 -L      # 凍結帳號
		
		 -U      # 解鎖
## 更改用戶redhat的家目錄
# usermod -d /data/redhat  redhat   
## 更改用戶redhat的用戶組
# usermod -g users redhat  
# id redhat
uid=1001(redhat) gid=1001(redhat) groups=1001(redhat)
# usermod -l redhat02 redhat  # 更改用戶名redhat爲redhat02
# id redhat
id: redhat: no such user
# id redhat02
uid=1001(redhat02) gid=1001(redhat) groups=1001(redhat)
  • 用戶權限下放

在系統中超級用戶可以下放普通用戶不能執行的操作命令給普通用戶

超級用戶執行 visudo 進入編輯 /etc/sudoers模式
格式: 用戶  用戶所在的主機名 =(下放權限的用戶身份) 命令
## 查看主機名
[root@server2 ~]# hostname
server2
## 新增用戶hadoop
# useradd hadoop -d /data/hadoop -g users
## 設置密碼
# passwd hadoop
## 超級用戶root 執行 visudo
[root@server2 ~]# visudo
## 找到第 90 行
      ## Allow root to run any commands anywhere
      root    ALL=(ALL)       ALL
      
## 在其後添加(可以執行yum,kill,killall,並且不需要輸入用戶密碼)
	 ## Allow hadoop to run any commands anywhere
	hadoop  server2=(root)   NOPASSWD:/usr/bin/yum, /bin/kill,/usr/bin/kill, /usr/bin/killall
hadoop用戶能在server2主機內以超級用戶身份執行 NOPASSWD執行 yum,kill,killall命令,並且不用輸入該用戶密碼

下放權限前後對比

在這裏插入圖片描述在這裏插入圖片描述

腳本自動化創建用戶

[root@server2 ~]# vim useraddSRE.sh 
#!/bin/sh

## default setting
user='kafka'
group='users'
dir='/data/'
homedir=$dir$user
password=$user'@redhat'

## add the account
useradd -d $homedir -g $group $user >/dev/null

## modify the validity period of the account and password
chage -M 99999 $user
echo $user:$password | chpasswd >/dev/null

## create a directory and change its permissions
[ ! -d $homedir ] && mkdir $homedir
chown -R $user:$group $homedir >/dev/null
chmod -R 755 $homedir >/dev/null
cd $homedir

chage用法

chage命令 是用來修改帳號和密碼的有效期限

chage  [選項]  用戶
用法:chage [選項] 用戶

選項:
  -d, --lastday 最近日期        將最近一次密碼設置時間設爲“最近日期”
  -E, --expiredate 過期日期     將帳戶過期時間設爲“過期日期”
  -h, --help                    顯示此幫助信息並推出
  -I, --inactive INACITVE       過期 INACTIVE 天數後,設定密碼爲失效狀態
  -l, --list                    顯示帳戶設置信息
  -m, --mindays 最小天數        將兩次改變密碼之間相距的最小天數設爲“最小天數”
  -M, --maxdays 最大天數        將兩次改變密碼之間相距的最大天數設爲“最大天數”
  -R, --root CHROOT_DIR         chroot 到的目錄
  -W, --warndays 警告天數       將過期警告天數設爲“警告天數”

/etc/login.defs 默認設定了幾個參數,以後設置口令可以按照此文件的參數設定爲準

PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

也可以在/etc/default/useradd可以找到如下2個參數進行設置

## useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

通過修改配置文件,能對之後新建用戶起作用,而目前系統已經存在的用戶,則直接用chage來配置。

[root@server2 ~]# chage -l kafka

在這裏插入圖片描述

舉例! 設置密碼過期7天后,密碼自動失效,該用戶將無法登陸系統。

[root@server2 ~]# chage -M 60 kafka   ## 設置密碼最大過期時間爲60天
[root@server2 ~]# chage -I 7 kafka    ## 設置密碼失效時間爲7天
[root@server2 ~]# chage -l kafka      ## 查看設置信息

在這裏插入圖片描述

文件的擁有屬性

  • chgrp 改變文件或目錄的用戶組
# chgrp -R root /data/kafka/
  • chown 改變文件或目錄的擁有者
# chown -R root /data/kafka/
  • 同時改變文件或目錄的擁有者和用戶組
# chown kafka.users /data/kafka/
# chown root:root /data/kafka/

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章