《linux教程第三章解析课件.ppt》由会员分享,可在线阅读,更多相关《linux教程第三章解析课件.ppt(42页珍藏版)》请在三一办公上搜索。
1、第三章 系统安全与多任务管理,多用户管理概述用户帐户管理组账户管理文件和目录操作权限设置多任务管理,第三章 系统安全与多任务管理多用户管理概述,3-1linux多用户概述概述,Linux下的用户 Linux下的用户可以分为三类:超级用户、系统用户和普通用户。超级用户的用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。系统用户是Linux系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录,例如:bin、daemon、adm、lp等用户。而普通用户是为了让使用者能够
2、使用Linux系统资源而建立的,我们的大多数用户属于此类。 每个用户都有一个数值,称为UID。超级用户的UID为0,系统用户的UID一般为1499,普通用户的UID为50060000之间的值。,3-1linux多用户概述概述Linux下的用户,组群概念组群ID(GID) 每一个用户都属于某一个组群(组群的GID类似于用户ID) 用组群管理用户的优点 设置组的属性及权限,组中的成员就享有该组同样的权限; 有人员变动时只需改变组的成员即可; 不必去为每个用户设置属性,节省了大量的重复劳动,方便管理用户。,网络用户,几百个或几千个用户,每个用户有资源需求,分类归并成几大类用户,相同类型的组成“组群”
3、,组 名,组群概念网络用户几百个或几千个用户每个用户有资源需求分类归并,文件或目录的操作权限,-rw-rw-r- 1 Lionheart Lionheart 134 Jun 21 00:18 DEADJdrwxr-xr-x 5 Lionheart Lionheart 1024 Jun 20 13:00 Desktop,文件或目录的操作权限 -rw-rw-r- 1 Lionhe,账号系统文件 Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow。因此账号的管理实际上就是对这几个文件的内容
4、进行添加、修改和删除记录行的操作,账号系统文件,/etc/passwd,#ls l /etc/passwd-rw-r-r 1 root root 1640 Oct 14 09:31 /etc/passwd,root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinhxb:x:500:500:hexianbo:/home/hxb:/bin/bash,/etc/passwd#ls l /etc/passwd,账号名称:用户登录Linux系统时使用的名称。
5、密码:这里的密码是经过加密后的密码(一般是采用MD5加密方式),而不是真正的密码,若为“x”,说明密码经过了shadow的保护 (注:pwconv/pwunconv命令用于设置或取消该项功能) UID:用户的标识,是一个数值,Linux系统内部使用它来区分不同的用户。GID:用户所在基本组的标识,是一个数值,Linux系统内部使用它来区分不同的组,相同的组具有相同的GID。个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等信息。主目录:通常是/home/username,这里username是用户名,用户执行“cd”命令时当前目录会切换到个人主目录。Shell:定义用户登录后激活的
6、Shell,默认是Bash Shell,/etc/passwd字段说明,账号名称:用户登录Linux系统时使用的名称。/etc/pa,/etc/shadow,#ls l /etc/shadow-r- 1 root root 1054 Oct 14 09:31 /etc/shadow,/etc/shadow#ls l /etc/shadow,/etc/shadow字段说明用户名:和/etc/passwd文件中的用户名一致密码:存放加密后的口令最后一次修改时间: 从1970-1-1起计的天数最小时间间隔:两次修改口令允许的最小天数最大时间间隔:口令保持有效的最多天数警告时间:从系统提前警告到口令正
7、式失效的天数不活动时间:口令过期多少天后,该账号被禁用失效时间:指示口令失效的绝对天数( 相对于1970-1-1)标志:未使用另外:密码字段为“*”表示用户被禁止登录,为“!”表示密码未设置,为“!”表示用户被锁定,/etc/shadow字段说明,/etc/group,/etc/group,/etc/group字段说明 组名:组的名称,如:root、bin等 组的密码:设置加入组的密码 GID:组的标识符,为数值 组成员:组所包含的用户,用户之间用“,”分隔,/etc/gshadow,/etc/group字段说明/etc/gshadow,3-2用户账号管理,创建新用户创建新的用户要完成以下几个
8、工作: (1) 在/etc/passwd(和/etc/shadow)中添加一行新的记录 (2) 创建用户的个人主目录,并赋权限 (3) 在用户的个人主目录设置默认的配置文件 (4) 设置用户的初始口令命令基本格式 useradd/adduser 参数 用户名,3-2用户账号管理创建新用户,参数选项-c comment:注释行,一般为用户的全名、地址等-d dir:设置个人主目录,默认值是/home/用户名。-e YYYY-MM-DD:设置账号的有效日期,此日期后用户将不能使用该账号。要启用shadow才能使用此功能。-f days:指定密码到期后多少天永久停止账号,要求启用shadow功能。-
9、g group:设定用户的所属基本组,group必须是存在的组名或组的GID-G group:设定用户的所属附属组,group必须是存在的组名或组的GID,附属组可以有多个,组之间用“,”分隔开-s Shell:设置用户登录后启动的Shell,默认是Bash Shell-u UID:设置账号的UID,默认是已有用户的最大UID加1,参数选项,例如: #useradd user1 #useradd -g user1 d /home/us2dir user2 注:使用useradd建立新用户时,新建的用户有一定的默认设置,该设置来自/etc/default/useradd文件,可通过修改该文件内容
10、改变默认设置,例如:,修改用户的属性修改用户的密码 (1) passwd 用户名修改用户的密码 例 rootlocalhost root#passwd rootlocalhost root#passwd root rootlocalhost root#passwd user1注:只有超级用户才可修改其他用户的密码(2) passwd -d 用户名删除用户的密码 例如:rootlocalhost root#passwd d user1,修改用户的属性,修改用户的Shell设置 chsh -s Shell名 用户名例子:rootlocalhost root#chsh user1Changing S
11、hell for user2. New Shell /bin/bash: /bin/csh Shell changedrootlocalhost root#chsh s csh user1,修改用户的Shell设置,改变用户的属性 usermod 参数 用户名参数选项:-c comment:改变用户的注释,如:全名、地址等-d dir:改变用户的主目录-e YYYY-MM-DD:修改用户的有效日期。-f days:在密码到期的days天后停止使用账户-g GID或组名:修改用户的所属基本组-G GID或组名:修改用户的所属附加组,组之间用“,”分隔-l name:更改账户的名称。-m:把主目录
12、的所有内容移动到新的目录-p 密码:修改用户的密码-s Shell:修改用户的登录Shell-u UID:改变用户的UID为新的值例子: rootlocalhost root# usermod -d /home/user2 -m user2,改变用户的属性,禁用和恢复用户账户暂停用户passwd -l 用户名例如:rootlocalhost root# passwd l user1恢复用户 passwd u 用户名例如:rootlocalhost root# passwd u user1查看用户状态 passwd S 用户名用户身份转换 su -s shell-c command - 用户账号
13、 例1: user1localhost user1$ su 例2: rootlocalhost root# su user1 例3: user1localhost user1$ su c df 注-用于切换工作环境,sudo命令用于部分授权,禁用和恢复用户账户,用户删除 userdel 参数 用户名 参数选项: -r:删除用户时将用户主目录下的所有内容一并删除,同时删除用户的邮箱(在/var/spool/mail下)例如: rootlocalhost root#userdel -r user1查看登录用户查看已登录系统的所有用户(who )查看本终端登录的用户名称(whoami)查看登录用户及
14、运行程序情况(w)查看曾登录的用户(last) 用户运行环境的设置 /etc/profile,/etc/bashrc,/.bash_profile, /.bashrc,用户删除,3-3组账号管理,组的添加 命令格式: groupadd 参数 组名 参数选项: -g GID:指定新组的GID,默认值是已有的最大GID加1 -r:建立一个系统专用组,分配一个1499的GID例如: rootlocalhost root# groupadd -g 1000 group1组属性修改groupmod 命令格式:groupmod 参数 组名 参数选项: -g GID:指定组新的GID -n name:更改组
15、的名字为name 例如: rootlocalhost root# groupmod g 1001 n group2 group1,3-3组账号管理组的添加,gpasswd命令格式:gpasswd 参数 用户名 组名参数选项:-a:将用户加入到组中-d:将用户从组中删除-r:取消组密码-A:将指定用户作为组管理员不带参数,仅修改组密码例如:rootlocalhost root#gpasswd group1Changing the password for group group1New Password:Re-enter new password:rootlocalhost root# gpas
16、swd -a user1 group1rootlocalhost root# gpasswd -d user1 group1,gpasswd,组删除 命令格式:groupdel 组名例如:rootlocalhost root# groupdel group1 注:与用户同名的私有组不能用此命令删除,该户随同用户删除时一并进行显示用户所属的组groups 用户名显示用户的UID、GID、组等信息Id options 用户名显示用户的UID、GID、组等信息参数: -g:显示用户基本组的GID -G:显示用户附属组的GID -u:显示UID。 -n:以字符形式而不是数字形式显示UID和GID,组删
17、除,3-4文件权限操作,文件和目录的访问权限文件的访问权限读权限(r):只允许用户读内容,禁止做任何更改写权限(w):允许用户修改或删除执行权限(x):用户可以将该文件作为一个程序执行目录的访问权限 读权限(r):允许列出存储在该目录下的文件 写权限(w):允许从目录中删除或添加新的文件或目录 执行权限(x):允许在目录中查找,并能用cd命令将工作目录转到该目录。,3-4文件权限操作文件和目录的访问权限,设定文件权限模式时,常用以下的字母代表用户或用户组:u:文件的拥有者g:文件的所属组o: 其他用户a: 所有用户(即u+g+o)权限用以下字符表示:r: 读权限w : 写权限x : 执行权限另
18、外,”+“ 表示增加权限,”-“ 表示减少权限,”=“表示绝对权限,设定文件权限模式时,常用以下的字母代表用户或用户组:,文件和目录的访问权限除了用r、w、x、- 表示之外,还可以使用数字来表示,文件和目录的访问权限除了用r、w、x、- 表示之外,还,chmod命令格式:chmod 参数 模式 文件或目录名功能:改变文件或目录的访问权限参数: -R:改变目录的权限时,对目录下的所有文件与子目录进行相同权限的变更 -f:强制改变文件的访问权限,如果是文件的拥有者,则不会出现错误信息模式有两种形式:字符方式与数字方式,chmod,例如: # chmod o+w exam.txt # chmod u
19、=rw,g=rw,o=r exam.txt # chmod 777 exam.txt # chmod a+x exam.txt # chmod o-x exam.txt # chmod R 751 subdir,例如:,chown命令格式: chown 用户名:组名 文件或目录名功能:改变文件(或目录)的拥有者或所属组参数:-R:递归地改变目录及其所有的文件和子目录的拥有者或属组例如: rootlocalhost root# chown user1 exam.txt rootlocalhost root# chown user1 :group1 exam.txtchgrp 命令格式: chgr
20、p 组名 文件或目录名功能:改变文件(或目录)所属组参数:-R:递归地改变目录及其所有的文件和子目录的属组,chown,umask命令格式: umask 权限掩码功能:改变默认权限掩码例如: rootlocalhost root# umask 0022注:新创建目录的权限=777默认权限掩码(不借位减)新创建文件的权限=666默认权限掩码(不借位减),umask,3-5多任务管理,3-5-1基本概念任务/进程,3-5多任务管理3-5-1基本概念,根任务 根任务通常是内核启动后创建的第一个任务,再由它根据用户的需要创建其它一些任务。空闲任务 如果没有任务处于就绪队列,空闲任务将被执行,其优先级最
21、低,总处于就绪队列的末尾 空闲任务可用于计算CPU忙闲程度,如CPU利用率,根任务,任务的状态 系统中的一个任务可以处于各种状态,最基本的状态有四种:运行(Executing),就绪(Ready),等待(waiting,通常又称为挂起,suspend),休眠(Dormant)。,任务的状态,进程的启动 进程的启动有两种方式:手工启动和调度启动。手工启动又分为前台启动和后台启动。前台启动是最常用的方式,用户直接运行一个程序或执行一个命令时就启动了前台进程。后台进程的启动是用户在输入命令行后加上“&”字符。后台进程常用于进程耗时长、用户不着急得到结果的场合。用户启动一个后台进程后,终端会出现“#”
22、或“$”提示符,而不必等待进程的结束,用户又可以接着执行别的任务。调度进程,是指用户事先设定好(如在某个时间),让系统自行启动进程的方法。,3-5-2进程管理,进程的启动3-5-2进程管理,例:后台启动一个死循环进程,#includevoid main() for ( ; ;);,cycle.c,编译该程序: gcc o cycle.exe cycle.c后台启动该程序./cycle.exe &,例:后台启动一个死循环进程#include,常用的进程管理命令 ps 命令格式: ps 参数 功能:查看进程状态 参数选项: a:显示当前控制终端的进程 -A:显示所有进程 -e:显示所有进程 u:显
23、示进程的用户名和启动时间等信 x:显示没有控制终端的进程 l:按长格式显示输出 e:显示所有的进程。 t n:显示第n个终端的进程。,常用的进程管理命令,例如: ps au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1110 0.0 0.4 2372 1236 pts/0 S 23:17 0:00 login - test test 1111 0.0 0.5 2788 1360 pts/0 S 23:17 0:00 -bash root 1144 0.0 0.4 2792 1060 pts/0 S 23:17 0:0
24、0 su root root 1145 0.0 0.5 2792 1364 pts/0 S 23:17 0:00 bash root 1192 0.0 0.2 2624 760 pts/0 R 23:23 0:00 ps au ps aux,例如:,输出字段含义USER:启动进程的用户名PID:进程号PPID:父进程的进程号TTY:启动进程的终端号VSZ:占用虚拟内存的大小STAT:进程的状态,R表示进程正在运行,S表示进程在睡眠,T表示进程僵死或停止,D表示进程处于不能中断的睡眠(通常是输入输出)START:进程开始的时间TIME:进程已经运行的时间COMMAND:进程的命令名%CPU:进程
25、占用CPU总时间的百分比%MEM:进程占用系统内存总量的百分比NI:nice的优先级PRI:进程的优先级(p65、66),输出字段含义,kill命令格式1: kill -s signal PID 功能:给进程发送信号命令格式2:kill l例如: rootlocalhost root# ps a13432 cycle.exerootlocalhost root# kill 13432rootlocalhost root# kill s SIGKILL 13432rootlocalhost root# kill s 9 13432,kill,Linux信号机制基本概念 信号用来通知进程发生了异步
26、事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。 收 到信号的进程对各种信号有不同的处理方法。处理方法可以分为三类:第一种是类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,由该函数来处 理。第二种方法是,忽略某个信号,对该信号不做任何处理,就象未发生过一样。第三种方法是,对该信号的处理保留系统的默认值,这种缺省操作,对大部分的信 号的缺省操作是使得进程终止。 在进程表的表项中有一个信号域,该域中每一位对应一个信号,当有信号发送给进程时,对应位置位。,Linux信号机制,部分linux信号介绍2 SIGINT
27、: 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出。3 SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl+)来控制. 进程在因收到SIGQUIT退出时会产生core文件。5 SIGTRAP :由断点指令或其它trap指令产生,由debugger使用。9 SIGKILL :立即结束程序的运行, 本信号不能被阻塞, 处理和忽略。15 SIGTERM : 程序结束信号, 与SIGKILL不同的是该信号可以被阻塞和处理. 通常用来要求程序自己正常退出 。17 SIGCHLD: 子进程结束时, 父进程会收到这个信号。 18 SIGCONT:
28、 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞。19 SIGSTOP: 暂停(stopped)进程的执行, 本信号不能被阻塞, 处理或忽略。20 SIGTSTP :暂停进程的运行, 该信号可以被处理和忽略.(用户键入Ctrl-Z)发出该信号30 SIGPWR :Power failure,部分linux信号介绍,top功能:进程的实时监控参数: -d n:设置刷新间隔,以秒为单位 -i:不显示空闲进程和僵死进程 -p:监控指定进程例如:rootlocalhost root# top d 20rootlocalhost root# top d 20 p 13432,top,linux教程第三章解析课件,