linux-用户权限用户用户组- 创建用户
/dev是linux系统的设备(devices)目录,不要用来存用户数据!
/dev/目录下权限也不是乱改,会造成系统不可用的。
最常用:
chown -R scaleout:scaleout /home/scaleout
1、创建用户、设置密码
useradd -d /data3/chenlidong5 -m chenlidong5 # -m 表示创建对应的home目录
第一次创建不需要指定组,如果要指定组请指定已经存在的组
useradd chenlidong5 //默认就会创建一个跟用户名一样的组
创建用户组
为用户指定用户组
vim /etc/sudoers
添加一个用户到指定用户组:
gpasswd –a 用户名 组名
usermod –G 组名 用户名
来自 <https://www.cnblogs.com/alonely/p/9425327.html>
userdel username 删除用户username
rm -rf username 删除用户username所在目录
切换下刚才添加的用户:
su username 查看一下对应的位置 可以进去 没毛病
exit就回到了root用户了
添加用户组
groupadd groupname 添加用户组
groupdel groupname 删除用户组
PS:关于组的增加和删除信息会在etc目录的group文件中找到 命令cat /etc/group 可以看到自己的分组和分组id
修改用户组:
chown [-R] 账号名称 文件或目录 /a/b/c 指的是c下的所有,不包括b
如果要c下的所有要写成c/
chown [-R] 账号名称:用户组名称 文件或目录
来自 <https://blog.csdn.net/hudashi/article/details/7797393>
关于修改用户权限有一个简单粗暴的方法
直接vi /etc/password 进行修改 是不是很暴力。。。
下面说正事儿,关于uid:
0 表示管理员(root)
1 - 500 表示系统用户
501 - 65535 表示普通用户 一般是这样的,不过不同的Linux版本可能有些偏差
chown [-cfhvR] [--help] [--version] user[:group] file...
来自 <https://www.cnblogs.com/pfdltutu/p/9139307.html>
2、给用户sudo权限
普通用户做root用户才有的权限操作时,需要在命令前加sudo
用户组前面会加%,加了%号的表示
来自 <https://app.yinxiang.com/Home.action?login=true>
Linux新机注意事项
欧拉
Sshd time session out 终端自动断开连接
有2个方法
1 配置服务器
/etc/ssh/sshd_config
ClientAliveInterval 900 #900秒
#指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数。比如10
ClientAliveCountMax 0
(Changes will take effect after you restart the sshd, and only for sessions opened afterwards).
https://unix.stackexchange.com/questions/429762/how-to-define-a-timeout-for-unsused-session-on-sshd?newreg=ff0106f418394e9d82a1c0da0ef40cb2
2 配置客户端
编辑
/etc/ssh/ssh_config
如果是Windows用户,你自己在安装目录找吧
然后找到里面的
ServerAliveInterval
参数,如果没有你同样自己加一个就好了
参数意义相同,都是秒数,比如9分钟
ServerAliveInterval 540
mkdir linux文件夹操作
mkdir linux文件夹操作
mkdir BBB/Test #error if BBB doesnt exist
mkdir -p BBB/Test # BBB will be created if BBB doesnt exist
- m 对新建目录设置存取权限。
Common directory and file management commands in Linux
https://www.intechgrity.com/common-directory-and-file-management-commands-in-linux/#
当前目录下创建hellodir及其子目录worlddir
[root@maobo]# mkdir -p hellodir/worlddir
一次移动多个文件
mv a.dir b.dir c.dir 1.txt 2.txt -t des.dir 就可以一次将这些文件移动到des.dir下。
Awk
time_starttransfer: 0.688000
分隔符
awk -F "|" '{print $1}'
{print $2*1000,$4*1000}'
输出:15 296
awk -F "|" '{print $1*1000}'
awk -F " " '{print int($1)}'
awk -F " " '{printf ("%3.3fn",$2)}'
awk -F " " '{printf ("%3.3fn",$2 * 1000)}'
awk -F " " '{printf ("%3.3fn",$2 - $1)}'
awk -F " " '{printf ("%d,%d,%d,%d", $2*1000,$4*1000,$6*1000,($4-$2)*1000 )}'
0 1
awk
- awk '{pattern + action}' {filenames}
一个强大的文本处理工具,逐行扫描,从第一行到最后一行
[root@test ~]# awk '/root/' /etc/passwd #awk ‘字符串’ 文件路径
root:x:0:0:root:/root:/bin/bash #输出结果为:行
operator:x:11:0:operator:/root:/sbin/nologin
-F “分隔符” —— 指定分隔符,默认为空格
split后输出第N列 $N
#显示所有以a或f开头的行
源数据文本负载的日志记录格式如下:
[ts in ns] [pid] [process] [lba] [size in 512 Bytes blocks] [Write or Read] [major device number] [minor device number] [MD5 per 4096 Bytes]
1213205617907797 318 kjournald 15974712 8 W 3 0 815406406ad070f3f5b3724897f4f8a5
1213205617991817 318 kjournald 382136 8 W 3 0 b1f91cdbbd38acfa70b0532d55cddd00
1213205619843976 318 kjournald 105576 8 W 3 0 0350c559efbb08c073dadc5f0369539a
1213205619894977 318 kjournald 105584 8 W 3 0 80da8b777854deae3dab9a0ced472a7f
返回结果可以为整行,也可以为一行中的某些域(列)。
域标记是以2...1表示参照第1域(列),使用$0表示使用所有域。
例1如上数据集中,输出1.file负载文件中所有请求的时间、lba、size、R/W和MD5值,并将结果重定向输出到1-new.file:
awk '{ print 4,6,$9}' 1.file > 1-new.file
3、条件操作
例2如上数据集中,输出所有读请求的时间、lba、size、R/W和MD5值:
awk '{if (1,5,9}' 1.file > 1-new.file
例3 如上数据集中,统计写请求的个数:
awk '{if ($6== "W") count++} END {print count}' 1.file
例3 如上数据集中,统计并打印请求访问的最大地址:
awk '{if $4 >max) {max=$4}} END {print max}' 1.file
'{print $1"t"$7}'
linux命令 记忆 方法[操作简单,看下载源顺利不顺利]
给linux系统安装cheet
yum install python
yum install git
pip install docopt pygments
git clone https://github.com/chrisallenlane/cheat.git
cd cheat/python setup.py install
cheat -v
使用方法: cheat ls
http://jingyan.baidu.com/album/e6c8503c046ecce54f1a18ed.html?picindex=10
通过 type -a 命令命查看一个命令是否是内部命令
$ type -a cd
cd is a shell builtin 内部命令
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls 外部命令
外部命令 同过man 或 --help 查询。 man文档借助less命令显示,遵循less的用法。
内部命令 通过help查询。
apropos “关键词”
linux自带 不适合搜索“directory”这种在很多文本中都有出现的单词,适合搜索“firewall”这种关联文本不多的单词。
prep.关于
通过关键词搜索帮助手册
fish 自动推荐
根据输入自动匹配历史命令
centos7 yum 先增加仓库并安装新仓库所设计的软件:
sudo -s cd /etc/yum.repos.d/
yum repolist yum update
安装fish:
yum install fish
Linux资源监控、问题排查
linux系统卡顿,执行top后的结果如下图,请问怎么JJ?
linxu系统卡顿等问题,主要从内存、CPU、磁盘IO、网络四方面定位问题。
先给个简单的建议,就是你重启下机器。
top命令可以看到:
- (1)系统的几种不同状态(running、stop、sleep、zombie等)的任务(负载)的数量;
- (2)CPU的状态;
- (3)内存使用情况;
- (4)Swap使用情况。
你系统的状态:
- (1)一般一个没有运行大型程序的虚拟机的负载total数为200左右,你你图中显示了1379个,负载数量确实很多,1379个进程,4运行中,757个睡眠,6个僵尸,还有一半消失了成为僵尸进程,一会儿可以查下进程和线程。;
- (2)内存总数70G+,buffer有3G+,如果是虚拟机的话,这个配置属于中高水平;
- (3)没有Swap,对系统性能影响很大?
针对你的机器情况,给出解决方案:
- (先给个简单的建议,就是你重启下机器。
- ps -ef| grep defunc 定位僵尸进程,或者ps -efl看看线程。
- sar命令可以查看CPU、内存、磁盘I/O、网络流量的情况。使用参考: https://blog.csdn.net/volitationlong/article/details/81741754
- 使用ICMP-ping、tcp-ping检查网卡
- 检查kern和syslog
如果不能解决,有什么问题可以继续跟我聊一聊。
自动化运维工具 sensible linux集群不同节点批量创建相同用户
- 使用ansible统一管理虚拟机,创建本地用户之类的跑一遍脚本就好.
创建用户参考 https://blog.51cto.com/hellocjq/2064114
ansible有图形化的界面 https://github.com/ansible/awx - 虚拟机配置ldap,用户在ldap中管理,就不用本地用户了,这个实现比较麻烦
参考文献