用戶管理和服務管理

1.用戶信息文件: /etc/passwdnode

1)root :x: 0 :0:    root     :/root :/bin/bashlinux

  用戶名     密碼位   UID    GID初始組ID 用戶說明(無關緊要)     家目錄  用戶登陸以後的權限apache

     用戶ID 緩存

   0 管理員 bash

   1-499 系統用戶(僞用戶)服務器

   >500 普通用戶多線程

 

 

若是普通用戶最後的登錄權限變爲/sbin/nologin/則該用戶就沒法登錄->可暫時禁止用戶登tcp

2)影子文件: /etc/shadow   加密後的密碼在此文件裏面工具

 

 

 99999爲密碼的 有效期!!!!後面的7天爲給提示讓用戶改密碼!!測試

 

初始組:每一個用戶初始組只能有一個,初始組只能有一個,通常都是和用戶名相同的組做爲初始組

附加組:每一個用戶能夠屬於多個附加組。要把用戶加入組,都是加入附加組

3)組信息文件: /etc/group

想要知道一個用戶屬於呢個初始組/etc/passwd查找組ID 再經過組ID/etc/group查出屬於哪一個組

 

結構---組名:組密碼位:組ID:組中附加用戶!!

如何把用戶變爲附加用戶:把machongtest1 做爲machongtest的附加用戶

Machongtest1爲附加組 不會影響Machongtest1初始組的創建(此種方式Machongtest1必須不存在)--大寫G

 

 

小寫g-->注意 使用小寫g是不會建立自身的初始組的!!

 

 

 

2.useradd  用戶名   useradd  選項  用戶名

選項:

-g  組名 指定初始組 不要手工指定

-G  組名 指定附加組,把用戶加入組,使用附加組

-c  說明 添加說明

-d  目錄 手工指定家目錄,目錄不須要事先創建

-s   /bin/bash 手工指定用戶登陸以後的權限

 

useradd  -g  aa  bb 添加bb用戶,同時指定初始組爲aa

useradd  -G  user1  aa 添加用戶aa,指定附加組爲user1

 

 

3.設定密碼   passwd   用戶名 ->管理員修改密碼

  passwd   改變當前用戶密碼

4.刪除用戶   userdel  -r  用戶名-r  連帶家目錄一塊兒刪除)

 

5.添加組   groupadd  組名  

-g->添加用戶user5的時候給定初始組爲1

-G->添加用戶user6的時候給定其附加組爲1

User5離開了自身的1組不會存活 因此1組不能刪 要想刪除1組必須先刪除user5

User6離開了附加組仍是能夠存活的 因此只需刪除user5就可刪除組1

 

 

6.刪除組   groupdel  組名 注意:組中沒有初始用戶。

 

7.把已經存在的用戶加入組

gpasswd  -a  用戶名  組名 用戶加入附加組(用戶名必須存在)

root:x:0:user1,user2  或者直接在後面加入附加組

 

gpasswd  -d  用戶名  組名 把用戶從附加組中刪除(用戶名必須存在)

 

8.id  用戶名 顯示用戶的UID,初始組,和附加組

[user1@CentOS6 ~]$ id

uid=504(user1) gid=504(user1) 組=504(user1),0(root)

9.su  -  用戶名 切換用戶身份 - 連帶環境變量一塊兒切換 建議使用完整切換!

env

 

[root@CentOS6 machong]# gpasswd -a user1 84 把user1加入附加組84

[root@CentOS6 machong]# gpasswd -a user2 84 把user12附加組84

[root@CentOS6 machong]# mkdir /www   建立www

[root@CentOS6 machong]# chown root:84 /www/ 更改www的所屬主和所屬組

[root@CentOS6 machong]# chmod 770 /www/   更改所屬主和所屬組權限

[root@CentOS6 machong]#

root@CentOS6 machong]# chmod 1770 /www/   更改所屬主和所屬組權限

1-隱藏權限 sbit用戶上傳的東西只能夠本用戶刪除

[root@CentOS6 machong]# ll -d /www/

drwxrwx--T. 2 root 84 4096 7月   2 10:13 /www/

[root@CentOS6 machong]#

設置特殊用戶權限 wr

[root@CentOS6 machong]# setfacl -m u:bnz:rx  /www

[root@CentOS6 machong]# ll -d /www

drwxrwx---+ 2 root 84 4096 7月   2 10:13 /www

[root@CentOS6 machong]#

查看文件權限

root@CentOS6 machong]# getfacl /www

getfacl: Removing leading '/' from absolute path names-->只有相對路徑不會報錯

# file: www

# owner: root

# group: 84

user::rwx

user:bnz:r-x

group::rwx

mask::rwx

other::---

 

10.ACL權限 用來解決權限身份不足的問題的  單獨給予用戶權限

 

1 getfacl  文件名 查詢文件的acl權限

2 setfacl  選項  文件名 設定acl權限

-m 設定權限

-b 刪除權限

 

setfacl  -m  u:用戶名:權限   文件名

setfacl  -m  g:組名:權限   文件名

 

setfacl  -m u:aa:rwx  /test test目錄賦予aa用戶是讀寫執行的acl權限

 

setfacl -m u:cc:rx -R soft/ 賦予遞歸acl權限,只能賦予目錄

-R  遞歸

 

setfacl  -b  /test 刪除acl權限

 

3 setfacl  -m d:u:aa:rwx -R /test acl默認權限。注意:默認權限只能賦予目錄

 

[root@CentOS6 www]# touch test1

[root@CentOS6 www]# touch test2

[root@CentOS6 www]# setfacl -m u:bnz:rx -R /www(有可能會形成權限溢出,儘可能不用

[root@CentOS6 www]# ll

總用量 8

-rw-r-xr--+ 1 root root 0 7月   2 10:53 test1

-rw-r-xr--+ 1 root root 0 7月   2 10:53 test2

注意:若是給目錄賦予acl權限,兩條命令都要輸入

-R 遞歸

-m  u:用戶名:-R 權限 只對已經存在的文件生效

-m  d:u:用戶名:-R 權限 只對將來要新建的文件生效     d

[root@CentOS6 www]# setfacl -b -R /www 遞歸刪除權限

 

11.把命令寫入文件裏面:

1)ls  >  aa 覆蓋到aa

2)ls  >>  aa 追加到aa

 

3)ls  gdlslga  2>>aa 錯誤信息輸出到aa 強調:錯誤輸出,不能有空格

2 錯誤信息

[root@CentOS6 www]# ls cjsakj 2>> test2

[root@CentOS6 www]# cat test2

ls: 沒法訪問cjsakj: 沒有那個文件或目錄

 

 

掌握

ls  >>  aa  2>&1 錯誤和正確都輸入到aa,能夠追加

2>&1 把標準錯誤重定向到標準正確輸出

[root@CentOS6 www]# ll >> test3 2>&1

[root@CentOS6 www]# ll cfdsmlksmd >>test3 2>&1

[root@CentOS6 www]# cat test3

總用量 12

-rw-r--r--. 1 root root 330 7月   2 11:18 test1

-rw-r--r--. 1 root root  52 7月   2 11:19 test2

-rw-r--r--. 1 root root  18 7月   2 11:22 test3

ls: 沒法訪問cfdsmlksmd: 沒有那個文件或目錄

[root@CentOS6 www]#

 

ls  >>  aa  2>>/tmp/bb 正確信息輸入aa,錯誤信息輸入bb

 

 

12.服務和進程管理

1)進程管理三個主要任務:

判斷服務器健康狀態

查看全部正在運行的進程

強制終止進程

 

2)進程查看 ps aux 查看當前系統全部運行的進程(-a 顯示前臺進程/-u 顯示用戶名、-x顯示後臺進程)

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root        1  0.0  0.2   2872  1384 ?        Ss   Jul01   0:03 /sbin/init

 

user:用戶名

pid 進程idPID 1  init  系統啓動的第一個進程

%CPUcpu佔用百分比

%MEM:內存佔用百分比

VSZ 虛擬內存佔用量 KB

RSS 固定內存佔有量

Tty 登陸終端 tty1-7 本地終端 1-6 字符  7圖形

pts/0-255

alt+F1-F7

stat 狀態 S:睡眠 D:不可喚醒 R:運行   T:中止  Z:僵死  W:進入內存 交換 X:死掉的進程 <:高優先級 N:低優先級 L:被鎖進內存 s:含子進程 +:位於後臺 l:多線程

start 進程觸發時間

time 佔用cpu時間

command 進程自己

 

3)pstree 查看進程樹

 

4)top 每三秒鐘刷新一次( M 內存排序/ P CPU排序/ q 退出

top - 12:18:17 up 1 day,  3:07,  2 users,  load average: 0.00, 0.00, 0.00

Tasks: 144 total,   1 running, 143 sleeping,   0 stopped,   0 zombie進程

Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st空閒

Mem:    629444k total,   600520k used,    28924k free,   108592k buffers

Swap:  2047992k total,        8k used,  2047984k free,   241448k cached

第一行: 系統當前時間 系統持續時間 登陸用戶 1,5,15分鐘以前的平均負載(越小越好)

第二行:進程總數

第三行:CPU佔用率 %id 空閒百分比

第四行:內存使用: 總共 使用 空閒 緩存

第五行:swap使用

 

5)進程管理 終止進程

root@CentOS6 ~]# kill -l

 1) SIGHUP  2) SIGINT  3) SIGQUIT  4) SIGILL  5) SIGTRAP

 6) SIGABRT  7) SIGBUS  8) SIGFPE  9) SIGKILL 10) SIGUSR1

A)kill  信號(-9  PID進程id號 結束單個進程

-9  強制

 

B)killall  -9  進程名 結束一類進程

  pkill   -9  進程名

 

 

C)w 判斷登陸用戶

  root@CentOS6 ~]# w

  12:36:45 up 1 day,  3:26,  3 users,  load average: 0.00, 0.00, 0.00

  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

  root     tty1     :0               09:15    3:25m 15.65s 15.65s /usr/bin/Xorg :0  

  -nr -verbose -audit 4 -auth /var/run/gdm/a

  root     pts/0    192.168.140.22   12:28    0.00s  0.15s  0.08s w

  user1    pts/1    192.168.140.22   12:36    6.00s  0.04s  0.04s -bash

  [root@CentOS6 ~]#

  pkill  -9  -t  終端號 把某個終端登陸的用戶踢出

  pkill  -9  -t tty1 把本地登陸終端1登陸用戶踢出

   [root@CentOS6 ~]# pkill -9 -t pts/1

     [root@CentOS6 ~]#

 

  

13.系統運行級別

1) dmesg 查看系統啓動信息

 

cat  /var/log/dmesg 系統啓動信息日誌

dmesg | grep eth0 查看eth0信息

dmesg | grep CPU 查看cpu信息

[root@CentOS6 ~]# dmesg | grep CPU

  Transmeta TransmetaCPU

PAT not supported by CPU.

SMP: Allowing 1 CPUs, 0 hotplug CPUs

NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:1 nr_node_ids:1

PERCPU: Embedded 14 pages/cpu @c1a00000 s35928 r0 d21416 u2097152

Initializing CPU#0

mce: CPU supports 0 MCE banks

CPU0: Intel(R) Core(TM) Duo CPU      T2400  @ 1.83GHz stepping 0c

Brought up 1 CPUs

microcode: CPU0 sig=0x6ec, pf=0x1, revision=0x54

[root@CentOS6 ~]#

[root@CentOS6 ~]# dmesg | grep eth0

eth0: registered as PCnet/PCI II 79C970A

eth0: link up

eth0: no IPv6 routers present

[root@CentOS6 ~]#

 

2)系統運行級別

0 關機

1 單用戶

2 不徹底多用戶,不含NFS

3 徹底多用戶

4 保留

5 圖形界面

6 重啓

 

A)runlevel   查詢系統運行級別

[root@CentOS6 ~]# runlevel

N 5   (N(none) 空格 5) N表明上一個級別  5當前級別

[root@CentOS6 ~]#

 

B)init  運行級別 改變運行級別

[root@CentOS6 ~]# init 3

[root@CentOS6 ~]# init 5

關機init 0     重啓init  6

 

C)修改系統默認運行級別(是否進入圖形界面3,5

vi  /etc/inittab init配置文件

#

id:5:initdefault:(系統默認運行級別,可修改!!!注意0和6不可以設爲默認!!!

~

14.linux服務管理

1)Rpm包安裝的服務

A)獨立的服務(快,佔內存)

啓動

a)  service  httpd  start(紅帽專有命令)

[root@CentOS6 ~]# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/

[root@CentOS6 ~]# netstat -tlun | grep 80

tcp        0      0 :::80                       :::*                        LISTEN      

[root@CentOS6 ~]#

刪除(源碼包經過紅帽專有命令啓動 只需複製文件apache2/bin/apachectl

[root@CentOS6 ~]# rm -rf /etc/rc.d/init.d/apachectl     

[root@CentOS6 ~]# service apachectl start

apachectl: 未被識別的服務

[root@CentOS6 ~]#

b)  /etc/rc.d/init.d/httpd  start(常規命令)

自啓動

a)  chkconfig --level 2345  httpd  on|off

[root@CentOS6 ~]# chkconfig --list | grep httpd

httpd           0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉

[root@CentOS6 ~]# chkconfig --level 2345 httpd on

[root@CentOS6 ~]# chkconfig --list | grep httpd

httpd           0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

[root@CentOS6 ~]#

b)  vi  /etc/rc.local(修改配置文件 把apache標準啓動命令寫入,系統啓動以後在輸入用戶名密碼以前最後調用的文件,檢測touch /var/lock/subsys/local該文件的最後修改時間就知道計算機是何時最後啓動的

/etc/rc.d/init.d/httpd  start(a和b只能有一個啓動 建議使用此方法,系統默認第一個

B)基於xinetd的服務(慢,佔內存小)

查看是否安裝:rpm -q xinetd

A.掛載

B.Yum -y install xinetd

C.查看 chkconfig --list(!!!只能查看rpm包的自啓動狀態!!!)

D.ntsysv rpm包安裝服務,自啓動管理工具

 

2)源碼包安裝的服務

 

1)  啓動

/usr/local/apache2/bin/apachectl  start

2)  vi  /etc/rc.local

/usr/local/apache2/bin/apachectl  start

15.計劃任務

1)ps aux | grep crond   / chkconfig --list | grep crond肯定服務必須啓動

[root@CentOS6 ~]# ps aux | grep crond

root      1649  0.0  0.2   7064  1260 ?        Ss   Jul01   0:02 crond

root     16975  0.0  0.1   5964   748 pts/0    S+   19:15   0:00 grep crond

[root@CentOS6 ~]#

[root@CentOS6 ~]# chkconfig --list | grep crond

crond           0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

[root@CentOS6 ~]#

2)crontab  -e 編輯定時任務(備份etc目錄

分鐘 小時 天 月 周

* * * * *  命令

10  *  31  *  *  命令 每月中31號中的每一個小時中第10分鐘執行一次

10  *  *  *  *  命令 每一個小時中第10分鐘執行一次

5  4  *  5-10  *  命令 5-10月天天的凌晨4點五分執行一次

*/10  *  *  *  *  命令 每10分鐘執行一次

5 4  1,15  *  *  命令 1號和15號4點五分執行日期和星期不要同時指定,會超出預期

5 4 10 * 5 命令 每月10號的4點五分執行 && 每週五4點五分執行

*/20 4 * 5 2 命令 五月每週二 凌晨四點 每隔20分鐘執行一次

0 4 10-15 7,9,10 * 命令 七九十月中10-15號的四點整執行 第一位不但是*(任意)

 

第一個*:一小時中第幾分鐘 0-59

第二個:一天中第幾個小時 0-23

第三個:一個月中第幾天 1-31

第四個:一年第幾個月 1-12

第五個:一週中星期幾 0-6 (其中0就是星期日7

3)注意事項:

A)選項都不能爲空,必須填入,不知道的值使用通配符*表示任什麼時候間

B)每一個時間字段均可以指定多個值,不連續的值用,間隔,連續的值用-間隔

C)間隔固定時間執行書寫爲*/n格式

D)命令應該給出絕對路徑

    E)星期幾何第幾天不能同時出現

    F)最小時間範圍是分鐘,最大時間範圍是月

4)注意:

 

 

crontab  -l 查看系統定時任務

crontab  -r   刪除定時任務

5)定時測試

A)crontab -e

B) 0 5 * * * echo 這是一個定時測試 >> /tmp/testwrite

C) [root@CentOS6 ~]# date -s 04:59:58

D)[root@CentOS6 tmp]# cat testwrite

   這是一個定時測試

相關文章
相關標籤/搜索