一,用戶權限基礎知識
1,用戶的權限有:
- r:讀
- w:寫
- x:執行
2,文件的權限:
- r:可以執行cat、head、tail等命令讀取文件中的內容
- w:可以用vi/vim或者重定向等操作向文件中寫入內容或著修改內容
- x:可以執行文件
3,目錄的權限:
- r:可以執行ls命令,來查看目錄下有哪些文件
- w:可以在目錄執行文件創建和刪除等操作
- x:可以執行cd命令
4,用戶的角色:
- 屬主用戶(u)
- 屬組用戶(g)
- 其他用戶(o)
- 全部用戶(a)
5,文件的權限位:
-rw-r--r--
-? ? ? ? ? ? ? rw-? ? ? ? ? ? ? ? ? ? ? r--? ? ? ? ? ? ? ? ? ? r--一般文件 屬主:讀寫權限 屬組:讀權限 其他用戶:讀權限
6,權限位的解釋?
1)第一位:表示文件的類型
- -:一般文件
- d:目錄文件
- l:鏈接文件
2)第二位 - 第四位:表示文件屬主所有具有的權限
3)第五位 - 第七位:表示文件的屬組所具有的權限
4)第八位 - 第十位:表示系統中其他的用戶所具有的權限
注意:
每一類用戶的權限順序都是:讀、寫、執行
如果相對應的權限,就會出現字符,沒有就會顯示 -
二,用戶的幾個命令
1,chown命令
作用:修改文件的屬主
格式: chown userName [-R] fileName
選項:
-R :在修改目錄的時候,將目錄的目錄中的文件一并修改
例:修改 11.txt 文件的屬主
chown tom 11.txt
2,chgrp命令
作用:修改文件的屬組
格式: chgrp 用戶名 [-R] 文件名
選項:
-R :在修改目錄的時候,將目錄的目錄中的文件一并修改
例:將 1.txt 文件的屬組改成 root
chgrp root 1.txt
3,chmod命令
作用:修改文件的權限
格式: chmod 賦權 文件名
方式:
- +:增加權限(在原有的基礎上修改)
例: chmod o+w 11.txt 給其他用戶增加寫的權限
- -:去除權限(在原有的基礎上修改)
例: chmod g-r 11.txt
- =:將權限修改位指定的權限(和原權限無關)
例: chmod u=rwx,g=rw,o=r 11.txt
例:將 11.txt 文件全部用戶的權限去掉
chmod a=--- 11.txt
4,數字表示權限:
- 0 無權限
- 1 執行
- 2 寫
- 4 讀
例:把 11.txt 文件的屬主的全改為可讀可寫可執行
chmod 700 11.txt
- 如果是一個數字修改的是其他用戶
- 如果是倆個數字修改的是其他用戶和屬組
- 三個就屬主、屬組、其他用戶
/etc/skel <<< 用戶家目錄模板
- 新用戶的家目錄怎么生成的
? ? ? ?將 /etc/skel 目錄復制到 home' 下,改名位和用戶名相同
? ? ? ?將這個目錄的屬主、屬組改為該用戶
? ? ? ? 將目錄的權限改位 700
- 假設用戶tom
cp -r /etc/skel /home/tom chown -R tom.tom /home/tom chmod -R 700 /home/tom
/etc/login.defs <<<控制新建用戶的默認屬性
#QMAIL_DIR /var/spool/mail指定新用戶的郵箱位置PASS_MAX_DAYS 99999新用戶密碼最長有效期PASS_MIN_DAYS 0新用戶修改密碼最短時間PASS_MIN_LEN 5用戶密碼最短長度PASS_WARN_AGE 7密碼到期前警告時間長度UID_MIN新建普通用戶的默認 uid 最小值UID_MAX新建普通用戶的默認 uid 最大值CREATE_HOME默認創建家目錄USERGROUPS_ENAB當前用戶組中沒有用戶,是否刪除用戶組ENCRYPT_METHOD SHA512指定加密算法
新建用戶:
1. useradd
2. passwd
完成的操作:
1. /etc/passwd 添加一行
2. /etc/shadow 添加一行
3. /etc/group 添加一行
4. 創建用戶家目錄
5. 創建用戶郵件文件
例:創建用戶 jerry
要求:
uid 777
主組 hadoop ( 800 )
附加組 python ( 850 ) hbase ( 860 )
家目錄 /home/jerry
描述 l am jerry
密碼 123456 ,最少使用 3 天才能再次修改,最長使用 30 天,到期前 5 天發送報警
實現步驟
1. 創建用戶基本信息( /etc/passwd )
vi /etc/passwd
jerry:x:777:800:i am jerry:/home/jerry:/bin/bash
2.檢查用戶
id jerry
3.使用openssl來生成密碼
格式: openssl passwd -1 -salt "string"
說明:
-1 :表示 md5 加密算法
-salt :表示加密的時候插入雜質(提高安全性)
openssl passwd -1 -salt "123456"$1$123456$wOSEtcyiP2N/IfIl15W6Z0
4. 修改密碼文件
echo `zhangsan:$1$123456$wOSEtcyiP2N/IfIl15W6Z0:19864:3:30:5:::` >> /etc/passwd
5. 創建用戶組
vim? /etc/groupoop:x:800python:x:850:jerryhbase:x:860:jerry
6. 創建用戶家目錄
cp -r /etc/skel /home/jerrycd /homechown -R jerry.hadoop /home/jerry/
7.創建用戶郵件
cd /var/spool/mail/touch jerrychmod 660 jerrychown jerry.mail jerry
8. 測試用戶是否可以正常使用
三,用戶授權
如果普用用戶需要執行特殊操作,有兩種方法:
- su - root 切換到root賬戶進行特殊操作,然后再回返到普通用戶
- sudo 命令
1,su命令:
- 優點:使用簡單
- 缺點:
- root密碼容易泄露
- 普通用戶執行操作不可控
2,sudo命令:
作用:給普通用戶授權,讓普通用戶執行特定的操作
- 缺點:需要進行權限配置
- 優點:
- 不要切換到root用戶(不用知道root密碼)
- 用戶可執行預定的操作
- 可以記錄每個用戶執行過的命令
sudo 使用:
- 第一步:通過sudo配置文件為普通用戶授權
- 第二步:普通用戶執行特殊操作
sudo 的配置文件:
- /etc/sudoers
格式:
root ALL=(ALL) ALL用戶名 主機 =( 用戶名 ) 全部命令%aa 代表給 aa 組授權ALL: 全部命令/usr/bin/touch 授權單個命令/usr/bin/touch,/usr/bin/ls 授權多個命令用 , 隔開/usr/bin/* 授權 /usr/bin 下的全部命令
修改配置文件:
visudo添加一行zhangsan ALL=(root) /usr/bin/touch,/usr/bin/ls用普通用戶執行命令:用管理員身份執行需用: sudo 命令 來執行sudo touch /a前面有 % 代表是給用戶組授權