Linux 學習筆記(二) 阿新 • • 發佈:2018-11-26 echo ------- >> 1.txt [[email protected] 桌面]$ df -Th //檢視磁碟使用情況 檔案系統 型別 容量 已用 可用 已用%% 掛載點 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 124K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot 使用者及許可權管理 虛擬使用者是跑服務用的。 組是一堆使用者的集合,一個使用者可以屬於多個組 UID = 0 -> 超級使用者 在建立張三使用者的同時也會自動建立張三組,並把張三加入進去,由於張三是第一個使用者,所以這叫張三的基本組,後加入的使用者都是附加組 基本組與附加組的區別:設定磁碟配額時,針對基本組,不針對附加組 ,但是生產環境下大多針對使用者做磁碟配額。 vim/etc/passwd 使用者所在地 root:x:0:0:root:/root:/bin/bash x:密碼佔用符,在另一個檔案中 0:UID 0:GID root:什麼使用者,描述,可以不要 /root:家目錄(宿主目錄) /bin/bash: 它的shell,onlogin:不能登陸系統 /etc/shadow 使用者密碼所在地 root:$6$aF2yZRcY.dzfTF8B$n128ssxjA0oq39hpBGKCwcsPwcI/x6W8px9xC5Qsf8oiCqp3MvBmvGpNmXjw6OoTOXodvAoycL32ULL1dMVxE0:16786:0:99999:7::: //密碼加密字串,16786代表上一次改密碼距離今天過了多少天,從1970-1-1開始算 //99999 :密碼有效期,期限可以改 //7 : 過期時間 hsqldb:!!:16786::::: !!表示這個使用者沒有密碼(被鎖定了),沒有密碼不能登陸,區別於空密碼 ftp:*:15155:0:99999:7::: *表示這個使用者沒有密碼 /etc/group 組所在地 root:x:0:root root:root組 x:表示組的密碼佔位符,已經淘汰不用了 0:GID root:組內成員,可以通過VIM,插入新增組成員 daemon:x:2:root,bin,daemon /etc/gshadow 組密碼所在地,已無用 新增使用者 [[email protected] 桌面]# useradd zhangsan [[email protected] 桌面]# tail -1 /etc/passwd zhangsan:x:501:501::/home/zhangsan:/bin/bash [[email protected] 桌面]# tail -1 /etc/shadow zhangsan:!!:16790:0:99999:7::: [[email protected] 桌面]# id zhangsan uid=501(zhangsan) gid=501(zhangsan) 組=501(zhangsan) [[email protected] 桌面]# useradd -u 4444 -d /churchill -e 2016-12-31 -s /sbin/nologin churchill [[email protected] 桌面]# tail -1 /etc/passwd //檢視使用者 churchill:x:4444:4444::/churchill:/sbin/nologin [[email protected] 桌面]# ls / //檢視宿主目錄churchill 10K bin cgroup dev etc lib lost+found misc net proc sbin srv test usr backup boot churchill dir1 home lib64 media mnt opt root selinux sys tmp var [[email protected] 桌面]# [[email protected] 桌面]# tail -1 /etc/shadow //檢視密碼 churchill:!!:16790:0:99999:7::17166: [[email protected] 桌面]# [[email protected] 桌面]# passwd -d zhangsan //將使用者密碼設定為空 [[email protected] 桌面]# passwd //修改本使用者密碼 [[email protected] 桌面]# usermod -l san zhangsan //問題解決如下 usermod:使用者 zhangsan 目前已登入 [[email protected] 桌面]# userdel -r zhangsan userdel:使用者 zhangsan 目前已登入 注意加入-r引數仍舊不能刪除正在登入的使用者。 如果要刪除正在登入的使用者可以使用-f引數: # userdel -f abc [[email protected] 桌面]# tail -1 /etc/shadow churchill:!!:16790:0:99999:7::17166: //99999 [[email protected] 桌面]# chage -M 30 churchill //修改使用者密碼有效期 [[email protected] 桌面]# tail -1 /etc/shadow churchill:!!:16790:0:30:7::17166: //30 [[email protected] 桌面]# [[email protected] 桌面]# chage -d 0 zhangsan //使用者下次登入時強制修改密碼 [[email protected] 桌面]$ vim /etc/login.defs //修改有效密碼時間 SS_MAX_DAYS 99999 //有效時間 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 [[email protected] 桌面]# groupadd admins //新增組 [[email protected] 桌面]# vim /etc/group [[email protected] 桌面]# useradd zhukov [[email protected] 桌面]# passwd zhukov 更改使用者 zhukov 的密碼 。 新的 密碼: 無效的密碼: 過短 無效的密碼: 過於簡單 重新輸入新的 密碼: passwd: 所有的身份驗證令牌已經成功更新。 [[email protected] home]# groupmod -n mmm mmmm //修改組名 [[email protected] 桌面]# group -a zhukov admins bash: group: command not found [[email protected] 桌面]# gpasswd -a user1 admins Adding user zhukov to group admins [[email protected] 桌面]# vim /etc/group [[email protected] 桌面]# id zhukov uid=4445(zhukov) gid=4446(zhukov) 組=4446(zhukov),4445(admins) [[email protected] 桌面]# //gpasswd 新增刪除組成員 [[email protected] 桌面]# gpasswd -M root,zhangsan,bin admins //定義admins,結果如:dmins:x:4445:root,zhangsan,bin [[email protected] 桌面]# vim /etc/group [[email protected] 桌面]# // su 與 su - 的區別 大部分Linux發行版的預設賬戶是普通使用者,而更改系統檔案或者執行某些命令,需要root身份才能進行,這就需要從當前使用者切換到root使用者,Linux中切換使用者的命令是su或su -,下面就su命令和su -命令最大的本質區別給大家詳解一下: 前者只是切換了root身份,但Shell環境仍然是普通使用者的Shell;而後者連使用者和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變數錯誤。su切換成root使用者以後,pwd一下,發現工作目錄仍然是普通使用者的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $PATH命令看一下su和su - 以後的環境變數有何不同。以此類推,要從當前使用者切換到其它使用者也一樣,應該使用su -命令。 [[email protected] ~]# su [[email protected] ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/uuuu/bin [[email protected] root]$ su - 密碼: [[email protected] ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin //root與zkpk的 shell命令不同 [[email protected] ~]# su zkpk [[email protected] root]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# su - zkpk [[email protected] ~]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zkpk/bin [[email protected] ~]$ visudo 語法錯誤不讓儲存 vim /etc/sudoers 語法錯誤也可以儲存 zkpk ALL=/usr/sbin/useradd,/usr/bin/passwd,!/usr/bin/passwd root //不能修改root密碼 zkpk ALL=/usr/sbin/useradd,/usr/bin/passwd ?*,!/usr/bin/passwd root //如果不加?*,在zkpk使用者下,sudo passwd 會修改root密碼 /etc/skel/ //新建使用者的主目錄的模板 //如果每新建一個使用者,其家目錄下有README檔案 ? // 在 /etc/skel/ 檔案下新增README即可 [[email protected] 桌面]# cd /etc/skel/ [[email protected] skel]# ls -a . .. .bash_logout .bash_profile .bashrc .emacs .gnome2 .mozilla [[email protected] skel]# //.bash_profile 宣告變數, 使用者登入時,生效 //.bashrc 使用者登入時,會自動執行裡面的命令,生效 //.bash_logout 當用戶登出/退出時,裡面命令生效 [[email protected] ~]# su - zhangsan [[email protected] ~]$ ls -a . .bash_history .bash_profile .emacs .mozilla .. .bash_logout .bashrc .gnome2 [[email protected] ~]$ [[email protected] skel]# vim /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [[email protected] ~]$ who root tty1 2015-12-21 14:00 (:0) root pts/0 2015-12-21 14:01 (:0.0) [[email protected] ~]$ w 14:26:37 up 27 min, 2 users, load average: 0.28, 0.24, 0.19 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 :0 14:00 26:57 9.99s 9.99s /usr/bin/Xorg : root pts/0 :0.0 14:01 0.00s 0.08s 0.06s w [[email protected] ~]$ users root root [[email protected] ~]$ 訪問許可權 讀取r: 允許檢視檔案內容、顯示目錄列表 寫入w: 允許修改檔案內容,允許在目錄中新建、移動、刪除檔案或子目錄 可執行x:允許執行程式、切換目錄 //chmod 修改檔案或目錄的許可權 [[email protected] ~]# chmod g+w,o-r 12345 [[email protected] ~]# chmod 644 12345 //chown 修改屬主,屬組 [[email protected] ~]# ll 12345 -rw-r--r--. 2 root root 11 12月 18 16:53 12345 [[email protected] ~]# chown zkpk.admins 12345 [[email protected] ~]# ll 12345 -rw-r--r--. 2 zkpk admins 11 12月 18 16:53 12345 [[email protected] ~]# //chgrp 只能修改屬組 [[email protected] ~]# chgrp root 12345 [[email protected] ~]# ll 12345 -rw-r--r--. 2 zkpk root 11 12月 18 16:53 12345 [[email protected] ~]# //使用附加位許可權 SET位許可權 主要用途: 為可執行(有 x 許可權的)檔案設定,許可權字元為“s” 他使用者執行該檔案時,將擁有屬主或屬組使用者的許可權 SET位許可權型別: SUID:表示對屬主使用者增加SET位許可權 SGID:表示對屬組內的使用者增加SET位許可權 //SUID [[email protected] ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 32680 1月 29 2010 /usr/bin/passwd [[email protected] ~]# ls -lh /etc/shadow ----------. 1 root root 1.4K 12月 21 14:05 /etc/shadow [[email protected] ~]# //新增SUID [[email protected] ~]# chmod +x 1.txt [[email protected] ~]# ll 1.txt -rwxr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [[email protected] ~]# chmod u+s 1.txt //新增SUID [[email protected] ~]# ll 1.txt -rwsr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [[email protected] ~]# [[email protected] ~]# chmod u+s 1.txt [[email protected] ~]# ll 1.txt -rwsr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [[email protected] ~]# chmod u-x 1.txt [[email protected] ~]# ll 1.txt -rwSr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [[email protected] ~]# //使用附加位許可權 粘滯位許可權(Sticky) 主要用途: 為公共目錄設定,許可權字元為“t” 使用者不能刪除該目錄中其他使用者的檔案 [[email protected] ~]# ls -ld /tmp/ drwxrwxrwt. 31 root root 4096 12月 21 22:02 /tmp/ [[email protected] ~]# ls -ld /var/tmp/ drwxrwxrwt. 2 root root 4096 12月 21 17:31 /var/tmp/ //設定SET位、粘滯位許可權 使用許可權字元 chmod ug±s 可執行檔案 chmod o ±t 目錄名 使用許可權數字: chmod mmmm 可執行檔案 m為4時 對應SUID,2對應 SGID,1對應粘滯位,可疊加 //細部許可權規劃:ACL的使用 ACL是 Access Control List 的縮寫主要目的是在 提供傳統的owner,group,others,read, write,execute許可權之外的細部許可權設定。 //setfacl [[email protected] ~]# chmod 770 /test/ [[email protected] ~]# ls -lhd /test/ drwxrwx---. 4 root root 4.0K 12月 18 10:56 /test/ [[email protected] ~]# su - zkpk [[email protected] ~]$ cd /test/ -bash: cd: /test/: 許可權不夠 [[email protected] ~]$ ls /test/ ls: 無法開啟目錄/test/: 許可權不夠 [[email protected] ~]$ exit logout [[email protected] ~]# setfacl -m u:zkpk:7 /test/ [[email protected] ~]# ls -lhd /test/ drwxrwx---+ 4 root root 4.0K 12月 18 10:56 /test/ [[email protected] ~]# su - zkpk [[email protected] ~]$ cd /test/ [[email protected] test]$ //getfacl [[email protected] test]$ getfacl /test/ getfacl: Removing leading '/' from absolute path names # file: test/ # owner: root # group: root user::rwx user:zkpk:rwx group::rwx mask::rwx other::--- [[email protected] test]$ //移除所有的 ACL 設定引數 [[email protected] ~]# setfacl -b /test/ //移除 [[email protected] ~]# getfacl /test/ getfacl: Removing leading '/' from absolute path names # file: test/ # owner: root # group: root user::rwx group::rwx other::--- //設定光碟掛載點 [[email protected] media]# df -Th 檔案系統 型別 容量 已用 可用 已用%% 掛載點 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 264K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot /dev/sr0 iso9660 3.4G 3.4G 0 100% /media/RHEL_6.2 x86_64 Disc 1 [[email protected] media]# cd [[email protected] ~]# umount /dev/cdrom [[email protected] ~]# df -Th 檔案系統 型別 容量 已用 可用 已用%% 掛載點 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 264K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot [[email protected] ~]# mount /dev/cdrom /media/ mount: block device /dev/sr0 is write-protected, mounting read-only [[email protected] ~]# df -Th 檔案系統 型別 容量 已用 可用 已用%% 掛載點 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 264K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot /dev/sr0 iso9660 3.4G 3.4G 0 100% /media [[email protected] ~]# //設定yum倉庫 [[email protected] yum.repos.d]# pwd /etc/yum.repos.d [[email protected] yum.repos.d]#vim localhost.repo [localhost] name=localhost baseurl=file:///media //指定倉庫位置, 倉庫有兩種網路的(ftp://,http://),本地的(file://) enabled=1 //啟用這個源 gpgcheck=0 // 不做校驗 ~ [[email protected] yum.repos.d]# yum install samba -y //安裝samba,-y [[email protected] yum.repos.d]# yum history Loaded plugins: product-id, refresh-packagekit, security, subscription-manager Updating certificate-based repositories. ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 5 | root <root> | 2015-12-21 17:31 | Erase | 1 4 | root <root> | 2015-12-21 17:27 | Erase | 1 3 | root <root> | 2015-12-21 17:23 | Install | 1 2 | root <root> | 2015-12-21 17:21 | Install | 1 1 | System <unset> | 2015-12-17 23:35 | Install | 1486 history list [[email protected] yum.repos.d]# yum history undo 3 //將 3 解除安裝 //關閉防火牆 [[email protected] ~]# service iptables stop iptables:清除防火牆規則: [確定] iptables:將鏈設定為政策 ACCEPT:filter [確定] iptables:正在解除安裝模組: [確定] [[email protected] ~]#