7番目のppt
1.基礎知識
1.ユーザーアカウント管理
ローカルマシンからLinuxシステムにログインする場合でも、リモートでログインする場合でも、各オペレーターは独自のユーザーアカウントを持っている必要があり、アカウントごとにリソースへのアクセス権が異なります。システム管理の範囲では、ファイルリソースの管理に加えて、システム管理者の最も重要な仕事はユーザーアカウントの管理です。いわゆるユーザーアカウント管理とは、アカウントの作成、削除、変更、アカウントの計画、権限の付与などの操作を指します。Linuxシステムアカウントは、ユーザーアカウントとグループアカウントに分けられます。
- ユーザーアカウント:通常、オペレーターにはユーザーアカウントがあり、各ユーザーアカウントには一意の識別番号UID(ユーザーID)があります。Linuxシステムにはrootユーザーrootがあります。さらに、システムで作成されたユーザーは、管理者ユーザーと標準ユーザーに分けられます。管理者ユーザーは、標準ユーザーよりも多くの権限を持っています。
- グループアカウント:各ユーザーアカウントには独自のグループがあります(グループの識別番号はGID(グループID)です)
アカウント管理および表示コマンド:
コマンド | 意味 |
---|---|
useradd user | 新しいユーザーアカウントユーザー |
useradd -gxxxユーザー | グループがxxxの新しいユーザーアカウントユーザーを作成します |
passwdユーザー | ユーザーのパスワードを変更します(rootユーザーが他のユーザーのパスワードを変更します) |
passwd | 通常のユーザーは自分のパスワードを変更します |
userdelユーザー | ユーザーユーザーを削除する |
usermod | ユーザー属性を変更する |
groupadd group | 新しいユーザーグループグループ |
groupdelグループ | ユーザーグループグループを削除する |
グループメンバーを変更する | / etc / groupファイルを編集します |
su xxx | ユーザーをxxxに切り替えます |
私は誰 | ユーザー自身のユーザー名を表示する |
WHO | 現在のシステムにいるユーザーを照会する |
w | 現在のシステムにいるユーザーを照会します。これは、whoコマンドの拡張バージョンです。 |
2.ファイルアクセス権限の管理
ファイルまたはディレクトリへのアクセス許可には、次の3つのタイプがあります。readable)、writable(w書き込み可能)および実行可能(eバツ実行可能)。
ユーザーが異なれば、同じファイルへのアクセス権も異なります。
- 所有者の権限 u
- グループのアクセス許可 g
- その他のユーザー(その他)の権限 ザ・
上記の操作では、lsを使用して各ファイルの詳細情報を一覧表示し、最初に合計サイズを表示します。次に、最初のフィールドにファイルのアクセス許可を表示し、次にファイル接続の数、所有者、グループ、サイズ、最終変更時刻、ファイル名など。ファイルのアクセス許可(合計10ビット)について言及する価値があります。
フィールド | 意味 |
---|---|
1 | ファイルの種類 |
2-4 | 所有者の権限 |
5-7 | グループのアクセス許可 |
8-10 | その他のユーザー(その他)の権限 |
- ファイルの種類:
文字 | 意味 |
---|---|
d | 目次 |
l | リンク |
c | キャラクターデバイス |
b | ブロックデバイス |
s | ソケットファイル |
p | コマンドパイプライン |
- | 通常のファイル |
- ファイルパーミッション:
文字 | 意味 |
---|---|
r | 読み取り可能なファイルの実際の内容 |
w | ファイルの内容を追加および変更するために編集可能 |
バツ | 実行可能ファイル |
- ディレクトリのアクセス許可:
文字 | 意味 |
---|---|
r | 読み取り可能なディレクトリ構造のリスト |
w | ディレクトリ構造を変更できます |
バツ | cd このディレクトリに移動して、作業ディレクトリにすることができます |
SUID(Set UID):ファイル所有者
のxパーミッションビットが表示されます
。sSGID(Set GID):ファイルグループユーザーのxパーミッションビットが表示されます。sSBIT(スティッキービット):他のユーザーのxパーミッションビットが表示されます。
•SUIDはu + sに対応する所有者のx位置にあり
ます•SGIDはg + sに対応する所属グループのx位置にあり
ます•SBITはoに対応する他のユーザーのx位置にあります+ 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 |
3、进程管理
进程(process)是指执行中程序的一个实例(instance)。
进程分类:
- (1).交互进程:由shell启动的进程
- (2).批处理进程:与终端没有联系,是进程序列
- (3).守护进程:在后台持续运行的进程
UNIX支持多进程。每个进程仅容许在一个极短的期间执行(几微秒的时间片time slice),之后会暂时搁置,让其他等待中的进程执行。通过调度器( scheduler)负责进程的执行。
- 进程会被指定优先级,利用
nice
和renice
命令调整进程的优先级。 - 平均负载(load average)给出了系统运行总负载量的一个平均值(单位时间内的可运行进程个数)。 平均负载有三个值:第一个为1分钟内的平均值;第二个为5分钟内的平均值;第三个为15分钟内的平均值。平均负载越高,表明系统工作负荷越高,此时响应可能会陷入停滞状态。
启动进程
-
手动启动
• 用户在终端输入命令,就直接启动了一个进程。
• 用户输入命令可以启动一个前台进程,前台进程控制着标准输入和输出, 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<user>]为可选的用户名参数,默认为用户自己(不带此参数)。
在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 | 该进程是多线程的 |
+ | 该进程运行在前台 |
4、系统监视
命令 | 含义 |
---|---|
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 | 使用可能なメモリに対するプロセスで使用されるメモリの比率。 |
時間+ | プロセスの開始から現在までのCPU時間の合計 |
コマンド | 開始プログラム名 |
2、操作スキル
1.ubuntuのrootアカウントにログインします
Ubuntuのデフォルトのrootパスワードはランダムです。つまり、起動するたびに新しいrootパスワードがあります。ターミナルでコマンドsudopasswdを入力し、現在のユーザーのパスワードを入力して入力すると、ターミナルは新しいパスワードの入力を求めて確認します。このときのパスワードは新しいルートパスワードです。変更が成功したら、コマンドsu rootを入力してから、新しいパスワードを入力します。
2. Atはファイルを実行し、ファイルに出力します
st1:.shファイルを編集します
st2:ジョブを送信します
at 16:25 today -f ./test.sh
st3:ジョブを表示し、完了したことを示します
at -l
st4:結果を表示
cat result.txt