第7个ppt
无论是从本机还是远程登录Linux系统,每个操作者都要有自己的用户账号,不同的账号对资源拥有不同的访问权限。在系统管理的范围内,除了文件资源的管理外,系统管理员最重要的工作就是用户的账号管理了。所谓用户账号管理是指账号的新建、删除、修改和账号的规划以及权限的授予等操作。Linux系统的账号分为用户账号和组账号两类:
账号管理和查看命令:
命令 | 含义 |
---|---|
useradd user | 新建用户账号user |
useradd -g xxx user | 新建用户账号user,其属组为xxx |
passwd user | 修改user 的密码(root用户修改其他用户密码) |
passwd | 普通用户修改自己的密码 |
userdel user | 删除user用户 |
usermod | 修改用户属性 |
groupadd group | 新建用户组group |
groupdel group | 删除用户组group |
修改组成员 | 编辑/etc/group文件 |
su xxx | 切换用户为xxx |
whoami | 显示用户自身的用户名 |
who | 查询当前系统中有哪些用户 |
w | 查询当前系统中有哪些用户,是who命令的增强版 |
文件或目录的访问权限分三种:可读(readable)、可写(writable)和可执行(executable)。
不同用户可以对相同文件具有不同的访问权限。
上述操作是我用ls将各个文件的详细信息列了出来,首先显示了总共的大小;之后第一个字段显示了文件的权限,再之后是文件的连接数,拥有者,所属群组,大小,最后修改时间,文件名等,值得一提的是文件权限(共有10位):
字段 | 含义 |
---|---|
1 | 文件类型 |
2-4 | 拥有者(owner)权限 |
5-7 | 同组用户(group)权限 |
8-10 | 其他用户(others)权限 |
字母 | 含义 |
---|---|
d | 目录 |
l | 链接 |
c | 字符设备 |
b | 块设备 |
s | socket文件 |
p | 命令管道 |
- | 普通文件 |
字母 | 含义 |
---|---|
r | 可读文件的实际内容 |
w | 可编辑添加修改文件内容 |
x | 可执行该文件 |
字母 | 含义 |
---|---|
r | 可读目录结构列表 |
w | 可以更改目录结构 |
x | 可以cd 到该目录使之成为工作目录 |
SUID (Set UID):文件拥有者的x权限位出现s
SGID (Set GID):文件组用户的x权限位出现s
SBIT (Sticky Bit):其他用户的x权限位出现t。
• SUID位于属主的x位置,对应u+s
• SGID位于属组的x位置,对应g+s
• SBIT位于其他用户的x位置,对应o+t
SUID和SGID仅用于可执行文件, SUID表示程序执行时执行者对于该程序具有文件拥有者的权限; SGID表示程序执行时执行者对该程序具有文件所属用户组的权限。
SBIT仅对目录有效,表示当用户在此目录下创建了文件或者目录时,仅自己和root用户才能有权利删除文件。
比如:
‐rwsr‐xr‐x. 1 root root 31K 2月 22 2012 /usr/bin/passwd
‐r‐xr‐sr‐x 1 root tty 15K 7月 19 2011 /usr/bin/wall
drwxrwxrwt. 40 root root 148K 10月 13 11:01 /tmp
第一个:其他用户拥有x权限,执行该程序时,短暂获取该程序的拥有者root的权限rws。作用是让本来没有相应权限的用户在运行这个程序时,可以访问该用户没有权限访问的资源。
第二个:其他用户拥有x权限,执行该程序时,短暂获取该程序的组用户tty的权限rs。
第三个:属主root用户具有rwx权限,属组root具有rwx权限,其他用户具有rwt的权限。亦即,所有用户具有该文件夹的可读可写可cd权限,同时只有root用户、该目录下的文件所有者和目录所有者具有删除对应用户的文件及子文件夹的权限。
文件权限设置:
chmod u+s binary_file
chmod g+s binary_file
chmod o+t folder
chmod u+r file1.txt 增加属主可读权限
chmod g+r file1.txt 增加属组可读权限
chmod o+r file1.txt 增加其他用户的可读权限
chmod a+r file1.txt 增加所有用户的可读权限
chmod +x file1.txt 增加所有用户的可执行权限
chmod u‐r file1.txt 去掉属主的可读权限
chmod 777 file1.txt #看下面
权限字母与数字
字母 | 数字 |
---|---|
r |
二进制表示为100 ,十进制为4 |
w |
二进制表示为010 ,十进制为2 |
x |
二进制表示为001 ,十进制为1 |
--- |
0 |
r-- |
4 |
-w- |
2 |
--x |
1 |
-wx |
3 |
r-x |
5 |
rw- |
6 |
rwx |
7 |
进程(process)是指执行中程序的一个实例(instance)。
进程分类:
UNIX支持多进程。每个进程仅容许在一个极短的期间执行(几微秒的时间片time slice),之后会暂时搁置,让其他等待中的进程执行。通过调度器( scheduler)负责进程的执行。
nice
和renice
命令调整进程的优先级。启动进程
手动启动
• 用户在终端输入命令,就直接启动了一个进程。
• 用户输入命令可以启动一个前台进程,前台进程控制着标准输入和输出, shell暂时挂起,命令执行完后回到shell。如ls。 后台进程命令如:
• ls &。后台进程在后台运行,终端可继续运行其他命令。
出现的数字是进程的编号
调度启动
• 在指定时间运行命令,调度启动命令如at、 batch、crontab
步骤1:在终端输入at 时间 后回车
步骤2:每行输入一条命令
步骤3:所有命令输入完毕后按cltr+D结束。
命令 | 含义 |
---|---|
at -l /atq |
查看调度启动命令启动的调度进程列表,亦即作业列表 |
at time -f xx.sh |
对文件使用调度启动 |
at -d / atrm |
用于删除指定的命令序列 |
batch |
用于低优先级运行作业,该命令与at命令的功能几乎完全一样,唯一的区别在于at是在指定时间执行指定命令;而batch是在系统负载较低,资源比较空闲的时候执行指定命令 |
cron |
可以让 crontab 安装的文件中的命令集每分钟执行一次,而前面的 at 和 batch 命令只使得命令集在规定时间执行一次 |
ps |
进程命令 |
kill PID |
杀死进程 |
at调度启动命令的其他时间格式
• at 5:30pm
• at 17:30
• at 17:30 today
• at now +5 hours
• at now +300 minutes
• at 17:3012.2.15
• at 17:302/12/15
• at 17:30 Feb12
调度启动 crontab命令
crontab调用命令的语法为:
crontab [‐u<user>] <file> #提交作业文件
crontab [‐u<user>] {‐l|‐r|‐e} #显示(‐l)、删除(‐r)和修改(‐e)作业文件
# [‐u]为可选的用户名参数,默认为用户自己(不带此参数)。
在crontab源文件中,前5个域指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者指标符分割。格式如下:
<minute> <hour> <day-of-month> <month-of-year> <day-of-week> <commands>
关于每个域的说明如下:
名称 | 含义 | 合法值 |
---|---|---|
minute | 分钟 | 00-59 |
hour | 小时 | 00-23 |
day-of-month | 一个月的第几天 | 01-31 |
month-of-year | 一年的第几个月 | 01-12 |
day-of-week | 一周的星期几 | 0-6 |
commands | 命令 |
如:
5,15,25,35,45,55 16,17,18 * * * command
# 每天下午的456点的5、15、25、35、45、55分执行命令
0 15 * * 1,3,5 shutdown -r now
# 每周一、三、五下午3:00系统进入维护状态,重新启动系统
进程查看命令ps
ps(process)用于查看linux系统所有用户进程,
• 包括当前用户、 root用户、伪用户等。
• ps命令格式:ps [选项]
• ‐e显示所有进程 ‐r显示当前终端运行进程
• ‐h不显示标题 ‐x显示所有进程不区分终端
• ‐l详细格式显示 ‐u以用户为主的格式显示进程
• ‐a显示所有终端上的进程,包括其他用户进程
其中:
字段 | 含义 |
---|---|
USER | 用户名 |
PID | 进程ID |
%CPU | 进程使用的CPU时间比例 |
%MEM | 进程使用的内存占可用内存的比例 |
VSZ | 进程在内存中的大小以kB为单位 |
RSS | 进程在未换出时占用的物理内存 |
TTY | 进程启动时的终端设备 |
STAT | 代表当前进程状态的双字符状态码。 |
关于状态:
字母 | 含义 |
---|---|
< | 该进程运行在高优先级上 |
N | 该进程运行在低优先级上 |
L | 该进程有页面锁定在内存中 |
s | 该进程是控制进程 |
S | 进程处于休眠 |
R | 进程正在运行 |
Z | 僵尸进程 |
T | 进程停止 |
l | 该进程是多线程的 |
+ | 该进程运行在前台 |
命令 | 含义 |
---|---|
top | 实时监视系统的资源 按ctrl+Z或q键退出top |
free ‐m | 以MB为单位查看内存使用情况 |
df ‐h | 以MB和GB为单位查看磁盘空间 |
字段 | 含义 |
---|---|
PID | 进程ID |
USER | 进程属主的名字 |
PR | 进程优先级 |
NI | 进程的谦让度值 |
VIRT | 进程占用的虚拟内存总量 |
RES | 进程占用的物理内存总量 |
SHR | 进程和其他进程共享的内存总量 |
S | 进程状态(D代表中断的休眠状态、R代表正在运行状态、S代表休眠状态、T代表跟踪状态或停止状态,Z代表僵化状态) |
%CPU | 进程使用的CPU时间比例 |
%MEM | 进程使用的内存占可用内存的比例。 |
TIME+ | 进程自启动到当前时间的CPU时间总量 |
COMMAND | 启动的程序名 |
Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。可以在终端输入命令 sudo passwd,然后输入当前用户的密码,enter. 之后终端会提示输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了。
at 16:25 today -f ./test.sh
st3: 查看作业,显示已完成
at -l
st4: 查看结果
cat result.txt