linux用户与权限

Linux

文件系统

用户与权限

创建用户

image-20220301195632211

useradd username

修改密码

passwd username

查看用户/组

删除用户:

image-20220301200808886

切换用户

su -(有空格)username
su - :切换到root用户,需要输入密码

sudo:

root指定普通用户可以执行的命令

image-20220301202223931

root的命令都是放在/usr/sbin里面的命令只有root用户才能使用,而普通用户的命令却是放在了/usr/bin目录

如:image-20220301203309826

查看普通用户被赋予的命令:

用户配置文件

image-20220301192332589

用户组:

已存在的用户添加到指定组

usermod -G qstar dell

查看组内成员:

groups:

image-20220301193536872 image-20220301194025281 image-20220301194342395

Linux中用户的分类

所有者(u) 同组用户(g) 其他人(o) 所有用户(a)

linu中文件权限

读(r) 写(w) 执行(x) 没有权限(-)

image-20220301163934058

默认权限:

-rw-r--r--

rw-代表该用户权限,r--代表所属组权限,r--代表其他用户权限

改变权限:

chmod a/u/g/o +/-/= rwx 文件或目录

数字形式的权限:rwx代表7,使用此种方式修改简单。

对目录下的所有文件与子目录执行相同的权限变更:

chmod -R 777 /mnt/dell

查看登录日志:

last

查看登录失败记录:

lastb

查看所有组:

cat /etc/group

查看组的成员

groups dell

image-20220301162410688

因此,想让普通用户访问所有目录的话,添加执行权限。修改某些文件,添加可写权限。

分区与挂载:

最多三个主分区,一个扩展分区,扩展分区(不能读写数据、格式化)只能包含逻辑分区(可以格式化)。

image-20220306190704708

分区:将大的磁盘空间分为小的逻辑分区。随后可定义分区名。

挂载:给分区分配挂载点,挂载点可以为任意linux目录结构树的一级。一般必须的挂载点为/ 、/home

注意:未挂载分区的目录使用上级目录挂载的分区。/etc占用/挂载的分区,而/home及子目录占用dev/sda3所在分区。

image-20220306185944501

文件系统格式:EXT2将内存分为4kb的大小,对于小文件,会占用更多(或几倍)的空间。

远程ssh启动teamviewer

teamviewer --daemon stop
teamviewer --daemon start
teamviewer --info print id

环境变量

执行顺序:/etc/profile->/etc/profile.d->/etc/bashrc->用户的.bash_profile->用户的.bashrc

shell指令

后缀一般为sh,bash等

其他后缀也可,需要在首行加入解释器位置

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)

执行方法:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

chmod +x 和chmod a+x 是一样的,一般没有明确要求,可以就用chmod +x

2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

/bin/sh test.sh
/bin/php test.php

Shell中的${}、##和%%使用范例

介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。
假设定义了一个变量为:
代码如下:
file=/dir1/dir2/dir3/my.file.txt
可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 .  及其左边的字符串:file.txt
${file##*.}:删掉最后一个 .  及其左边的字符串:txt
${file%/*}:删掉最后一个  /  及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 /  及其右边的字符串:(空值)
${file%.*}:删掉最后一个  .  及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个  .   及其右边的字符串:/dir1/dir2/dir3/my

linux使用shell

报错的话,可能的原因是编码或者格式原因,mobax中要切换为unix格式。

windows中使用shell指令

使用git-cmd指令,而非git-bash。

git-cmd:使用sh进入shell指令环境,可以使用ls等linux指令,但是无法使用windows指令以及配置的指令(如ffmpeg)

可不进入sh指令模式,而是使用sh+sehll.sh文件执行其中的指令,此时linux与windows的指令同时有效。

Linux用户登录信息放在三个文件中:

1  /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;

2  /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;

3  /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。

yum 安装包失败

当在Linux系统中使用yum安装软件时提示 “没有可用软件包”时,代表在linux系统yum源中已经没有对应的安装包了,这时,我们需要安装EPEL。

EPEL(Extra Packages for Enterprise Linux),企业版Linux额外包,RHEL分布非标准包的社区类库。安装如下:
yum没有找到对应依赖包,更新epel第三方软件库,运行命令:

yum install -y epel-release

centos 安装apt-get

curl https://raw.githubusercontent.com/dvershinin/apt-get-centos/master/apt-get.sh -o /usr/local/bin/apt-get

chmod 0755 /usr/local/bin/apt-get

/usr/local/bin/apt-get install 包名

posted @ 2022-05-23 22:41  killens  阅读(826)  评论(0编辑  收藏  举报