1. 程式人生 > >Linux 學習筆記(二)

Linux 學習筆記(二)

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] ~]#