马冲的博客

导航

用户管理和服务管理

1.用户信息文件: /etc/passwd

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

  用户名     密码位   UID    GID初始组ID 用户说明(可有可无)     家目录  用户登录之后的权限

     用户ID

   0 管理员

   1-499 系统用户(伪用户)

   >500 普通用户

 

 

如果普通用户最后的登陆权限变为/sbin/nologin/则该用户就无法登陆->可暂时禁止用户登

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

   这是一个定时测试

 

 

 

posted on 2018-11-07 00:44  马冲的博客  阅读(463)  评论(0编辑  收藏  举报