linux管理(一)---用戶管理及權限
來源:程序員人生 發布時間:2016-07-04 12:04:30 閱讀次數:2937次
用戶管理
查看用戶
查看當前登錄用戶
[root@localhost ~]# w
[root@localhost ~]# who
查看當前的用戶名
[root@localhost ~]# whoami
查看單個用戶信息
命令加用戶名[root@localhost ~]# finger joe
[root@localhost ~]# id joe
ps:CentOS某些版本找不到finger命令command not found需要先安裝yum install finger
查看用戶登錄記錄
查看登錄成功的用戶記錄[root@localhost ~]# last
查看登錄不成功的用戶記錄[root@localhost ~]# lastb
查看所有用戶
[root@localhost ~]# cat -d : -f 1 /etc/passwd
[root@localhost ~]# cat /etc/passwd |awk -F \: '{print $1}'
增加用戶
快速增加用戶
adduser
用法:adduser joe
配置增加用戶
useradd
useradd [參數] 用戶名參數:
-b, –base-dir BASE_DIR 設置基本路徑作為用戶的登錄目錄
-c, –comment COMMENT 對用戶的注釋
-d, –home-dir HOME_DIR 設置用戶的登錄目錄
-D, –defaults 改變設置
-e, –expiredate EXPIRE_DATE 設置用戶的有效期
-f, –inactive INACTIVE 用戶過期后,讓密碼無效-g, –gid GROUP 使用戶只屬于某個組
-G, –groups GROUPS 使用戶加入某個組
-h, –help 幫助
-k, –skel SKEL_DIR 指定其他的skel目錄
-K, –key KEY=VALUE 覆蓋 /etc/login.defs 配置文件
-m, –create-home 自動創建登錄目錄
-l, 不把用戶加入到lastlog文件中
-M, 不自動創建登錄目錄
-r, 建立系統賬號
-o, –non-unique 允許用戶具有相同的UID
-p, –password PASSWORD 為新用戶使用加密密碼
-s, –shell SHELL 登錄時候的shell
-u, –uid UID 為新用戶指定1個UID
-Z, –selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
用法:
useradd -d /usr/sam -m sam
此命令創建了1個用戶sam,其中-d和-m選項用來為登錄名sam產生1個主目錄/usr/sam(/usr為默許的用戶主目錄所在的父目錄)。
ps:useradd增加1個用戶后,不要忘了給他設置密碼,不然不能登錄的。
設置密碼
設置當前用戶的密碼
假定當前用戶是sam,則下面的命令修改該用戶自己的口令:
# passwd
Old password:******New password:*******Re-enter new password:*******超級用戶設置其它用戶的密碼
如果是超級用戶,可以用以下情勢指定任何用戶的口令:
# passwd sam
New password:*******Re-enter new password:*******
修改用戶
usermod -d /home/test -G test2 test
將test用戶的登錄目錄改成/home/test,并加入test2組,注意這里是大G。
修改用戶組
將用戶test加入到test2組
gpasswd -a test test2
將用戶test從test2組中移出gpasswd -d test test2
刪除用戶
userdel test
將test用戶刪除
組管理
創建組
增加1個test組
groupadd test
修改組
將test組的名子改成test2
groupmod -n test2 test
刪除組
刪除 組test2
groupdel test2
查看組
查看當前登錄用戶所在的組
groups
查看joe所在組
groups joe
查看所有組
cat /etc/passwd |awk -F [:] ‘{print $4}’ |sort|uniq | getent group |awk -F [:] ‘{print $1}’
有的linux系統沒有/etc/group文件的,這個時候看下面的這個方法
這里用到1個命令是getent,可以通過組ID來查找組信息,如果這個命令沒有的話,那就很難查找,系統中所有的組了.
權限管理
ssh相干配置
用useradd新增的用戶不能直接用ssh遠程訪問,需要修改ssh相干配置
以下:
vi /etc/ssh/sshd_config
添加AllowUsers root@192.168.1.32 admin joe sam多個用戶用空格隔開賦予root權限
方法1
修改 /etc/sudoers 文件,找到授權這1行,把前面的注釋(#)去掉顯示以下:
vim /etc/sudoers
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL然后修改用戶,使其屬于root組(wheel),命令以下:usermod -g root joe
修改終了,現在可以用joe帳號登錄,然后用命令 su - ,便可取得root權限進行操作。方法2
修改 /etc/sudoers 文件,找到下面1行,在root下面添加1行,以下所示:
vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALLjoe ALL=(ALL) ALL修改終了,現在可以用joe帳號登錄,然后用命令 su - ,便可取得root權限進行操作。普通用戶取得root用戶的履行權限sudo
不需要知道root用戶的密碼或向root用戶進行切換呢 但能履行root權限的操作
有1個命令sudo可以實現這個功能.
Sudo的工作流程
(1)root用戶編輯/etc/sudoers文件,添加要分配的普通用戶記錄,其中有這么1行記錄:root ALL=(ALL) ALL,在這行后面添加:joe ALL=(ALL) ALL
(2) 那末joe用戶在履行操作時,如果所履行的操作自己沒有權限,則會去/etc/sudoers文件中查找是不是有對應的記錄,如果有的話則臨時取得root權限,履行只有root才能履行的操作.用法
注意:這里會提示輸入密碼,但是輸入的是joe用戶的密碼,而不是root用戶的密碼.例如:
Shell> sudo mkdir –p a/b/c/d
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password: #這里的密碼是sam用戶自己的密碼,而不是root的密碼
設置步驟
1) 編輯/etc/sudoers文件,使用visudo命令,
visudo
其實visudo命令也是調用vi去編輯sudoer文件的,但是在保存時會去檢查你修改后文件的語法,如果毛病是不能保存的,但是如果直接用vi來編輯該文件,強迫保存雖然成功,但是如果有語法毛病這里其實不能給出提示,也就致使了后面sudo命令的不可用.記錄解析
joe ALL=(ALL) ALL
使用者帳戶 登入的主機=(可以變換的身份) 可以下達的命令
上述語句的意思是joe用戶可以在任何地方登錄,并可切換成任何用戶進行任何操作.這里如果(ALL)不寫,只寫為joe ALL=ALL,他默許只能切換為root用戶.
改變文件的所有者權限
linux chown命令參數及用法詳解
要更改文件 123.txt的所有者
chown joe 123.txt
123.txt的用戶訪問權限現在利用到joe。作為所有者,joe可使用 chmod 命令允許或謝絕其他用戶訪問123.txt。要將目錄 /tmp/src 中所有文件的所有者和組更改成用戶 joe和組 buildchown -R joe:build /tmp/src
tomcat的安裝目錄的所有者修改chown -R user:group /usr/java/tomcat5.5
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈