Red Hat change user and group

本文详细介绍了Linux系统中用户和用户组的管理方法,包括如何创建新用户、设置和修改用户密码、修改用户信息、新建组群、删除用户和组群,以及用户间切换和查看当前在线用户的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面介绍过,Linux系统是一个多用户操作系统,系统中每一个用户的使用权限都需要由系统管理员来设定。这一节将介绍一些系统管理员对用户和用户组进行管理的命令。

4.6.1 创建新用户

useradd命令(也可以使用adduser)用来创建新的用户帐号,其命令格式如下:

表4—19useradd命令常用选项

常用现象

意  

-d

设置新用户的登陆目录

-e

设置新用户的停止日期,日期格式为MM/DD/YY

-f

帐户过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1

-g

使新用户加入群组

-G

使新用户加入一个新组。每个群组使用逗号“,”隔开,不可以夹杂空白字

-s

指定新用户的登陆Shell

-u

设定新用户的ID值

   

   成功创建一个新用户以后,在/etc/passwd文件中就会增加一行该用户的信息,其格式如下:

〔用户名〕:〔密码〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目录〕:〔登陆Shell〕

其中个字段被冒号“:”分成7各部分。

由于小于500的UID和GID一般都是系统自己保留,不用做普通用户和组的标志,所以新增加的用户和组一般都是UID和GID大于500的。

例如使用如下命令:

root@localhost root〕# useradd user1

将会创建一个名为userl的用户,关于用户管理命令已经介绍过,在此也不做更多的介绍了。

执行useradd命令的结果如图11-13所示。

 

4.6.2 设置和修改用户口令passwd

passwd命令用来设置和修改用户命令,只有超级用户和用户自己可以修改密码,其他的普通用户没有修改其他用户密码的权利。其命令如下:

# passwd〔用户名〕

为避免输入密码是被人注意到有多少位,Linux并不采用类似Windows的密码回显〔显示为*号〕,所以,输入的这些字符是看不见的。例如,为新建的userl用户设置密码可使用如下命令:

root@localhost root〕# passwd user1

根据系统的提示信息输入两次密码,系统会显示:

passwd ::all authentication tokens updatedsuccessfully

表示修改密码成功了。新建用户的工作只有在该用户设置了口令后才算完成,否则无法使用该用户名登陆。

 

4.6.3修改用户信息usermod

usermod命令用来修改用户信息,其命令格式如下:

# usermod〔选项〕〔用户名〕

常用命令选项11-20所示。

表4-20usermod命令常用选项

常用选项

意   

-d

更新使用者新的登陆目录

-e

设置新用户的停止日期,日期格式为MM/DD/YY

-f

帐户过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1

-g

更新使用者新用户主组。

-G

定义使用者的附加组。

-l

变更用户登陆时的名称,同时使用者目录名也会跟着更动成新的名称

-s

指定新用户Shell

-u

用户ID值,必须为唯一的ID值。用户目录树下所用的文档目录其userID会自动变更,放在拥护目录外的文档则要自行手动更动

例如,下面的命令修改用户信息:

root@localhost root〕# usermod –d/home/user2–s/bin/bash user2

将用户名user2的主目录路径设置在/home/user1,登陆的Shell设置为/usr/bin/gcc。

一般情况下usermod命令会参照命令指令的部分修改用户帐号信息。但usermod不允许改变正在线上的使用者帐号名称,因此,当用usermod来改变用户帐号信息时,必须确认这名没在电脑上执行任何程序。

4.6.4  新建组群groupadd

groupadd命令用来建立新的用户组,其命令格式如下:

# groupadd〔选项〕〔用户名称〕

常用选项有:

-g:GID值。除非使用-o参数不然该值必须是唯一,不可相同,数值不可为负。

GID值预设为最小不得小于500而逐次增加。0—499传统上是保留系统帐号使用。

-f:新增的一个已经存在的群组帐号,系统会出现错误讯息然后结束groupadd.

如果是这样的情况,不会新增这个群组(如果是这个情况,系统不会在新增一次)。也可同时加上-g选项,当你加上一个GID时,此时GID就不用是唯一值,可不加-o参数,建好的群组会显示建立后的结果(adding a group as neither–g or –o options were specified),这是Red Hat Linux额外增设的选项。

4.6.5 删除用户userdel

userdel命令用来删除已经存在的用户及相关的文档,其命令格式如下:

# userdel 〔选项〕用户名

userdel命令的常用选项:

-r将用户目录下的文档一并删除。在其他位置上的文档也将一一找出并删除。

Userdel不允许移除正在线上的用户帐号,因此,如果想删除这类用户帐号,必须先杀掉用户在系统上运行的程序才能进行帐号删除。

4.6.6 删除群组groupdel

groupdel命令用来删除已经存在的用户组,其命令格式如下:

# groupdel组名

同userdel类似,如果有任何一个组内的用户在上线,就不能移除该用户组,因此,如果组内有用户在线的话,最好先移出该用户,然后在删除该用户。

 

4.6.7 用户间切换su

su 命令常用于不同用户间切换。其命令格式如下:

    #su〔用户名〕

su命令的常见用法是变成跟用户或超级用户,如果发出不带用户名的su命令,则系统提示输入根口令,输入之后则可换为根用户。如果登陆为根用户,则可以用su命令成为系统上任何用户而不需要口令。

例如,如果登陆为user1,要切换为user2,只要用如下命令:

# su user2

然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可以用exit命令返回到user1。

 

4.6.8 查看当前在线用户who

who命令主要用于查看当前在线上的用户情况。这个命令非常有用。如果用户想和其他用户建立即使通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。

又如,系统管理员希望监视每个登陆的用户此时此刻的所作所为,也要使用who命令。Who命令的常用命令格式和常用选项如下:

# who〔选项〕

命令who常用命令选项如表4-21所示。

               表4-21     命令who常用命令选项

常用选项

意  

-a

显示所有用户的所有信息

-m

显示运行该程序的用户名,和“who am I”的作用一样

    -q

只显示用户的登陆帐号和登陆用户的数量,该选项优先级高于其他任何选项

-u

在登陆用户后面显示该用户最后一次对系统进行操作距今的时间

-H

显示列标题

 


[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /var/lib/mysql # If MySQL is running as a replication slave, this should be # changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir # tmpdir = /tmp # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 mysqlx-bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer_size = 16M #max_allowed_packet = 64M #thread_stack = 256K #thread_cache_size = -1 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover-options = BACKUP max_connections = 151 table_open_cache = 4000 # # * Logging and Replication # # Both location gets rotated by the cronjob. # # Log all queries # Be aware that this log type is a performance killer. general_log_file = /var/log/mysql/query.log general_log = 1 # # Error log - should be very few entries. # #log_error = /var/log/mysql/error.log # # Here you can see queries with especially long duration #slow_query_log = 1 #slow_query_log_file = /var/log/mysql/mysql-slow.log #long_query_time = 2 #log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log #binlog_expire_logs_seconds = 2592000 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name以上是mysql.conf.d/mysqld.cnf文件的全部内容 哪里需要进行修改 请给出详细方案
最新发布
05-29
<think>好的,用户需要关于如何修改mysqld.cnf配置文件来优化MySQL性能和功能的详细方案。首先,我需要回顾之前提供的配置文件加载顺序和服务状态检查的信息,确保这次回答与之前的内容一致。用户引用了四个参考资料,其中提到不同系统的配置文件位置、SQL模式、MySQL8.0的新功能以及用户权限配置。这些引用需要合理融入回答中,特别是关于配置文件路径和版本差异的部分。接下来,用户的问题集中在优化性能和功能配置,所以需要详细说明关键的配置参数,如内存调整、存储引擎设置、日志配置等。同时,用户可能希望了解如何根据不同的工作负载(如高并发或大内存)进行优化,这需要分场景讨论。此外,还需要考虑MySQL8.0的新特性,如caching_sha2_password插件,这些在引用[3]中提到。用户可能没有明确说出的是如何验证配置更改后的效果,以及如何处理配置冲突。因此,在回答中需要包含配置验证步骤和检测冲突的方法,比如使用mysqld--validate-config命令,这与之前提到的配置文件加载顺序相关。另外,关于服务管理命令,如reload和restart的区别,也需要在相关问题中提及,确保用户理解如何正确应用配置更改。 需要注意引用文献的正确标注,例如在提到配置文件路径时引用[1],在讨论SQL模式时引用[2]。同时,确保数学公式和代码块格式正确,使用LaTeX语法,并且生成的相关问题能够覆盖用户可能遇到的后续疑问,比如如何定位生效参数或处理日志错误。 最后,要确保整个回答结构清晰,分步骤指导用户操作,并提供实际示例,如配置文件的代码片段,帮助用户直观理解。需要避免过于技术化的术语,用简洁的中文解释每个配置项的作用,确保不同水平的用户都能理解。</think>### MySQL性能优化与功能配置方案 #### 一、配置文件定位与验证 根据引用[1],MySQL主配置文件路径通常为: - `/etc/mysql/mysql.conf.d/mysqld.cnf` (Debian/Ubuntu) - `/etc/my.cnf` (Red Hat系) 验证当前生效配置文件: ```bash $ mysql --help | grep "Default options" -A5 # 输出示例: # Default options are read from the following files in the given order: # /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ``` #### 二、核心性能参数优化 内存优化配置(假设服务器内存为$32\text{GB}$): ```ini [mysqld] # 内存管理 innodb_buffer_pool_size = 20G # 建议设为物理内存的60-80%[^3] join_buffer_size = 256M sort_buffer_size = 4M read_rnd_buffer_size = 4M # 并发控制 max_connections = 1000 # 最大连接数 thread_cache_size = 100 # 线程缓存数 innodb_thread_concurrency = 16 # InnoDB并发线程数[^3] # 日志配置 slow_query_log = 1 long_query_time = 2 # 慢查询阈值(秒) log_queries_not_using_indexes = 1 ``` #### 三、存储引擎优化 InnoDB引擎参数(针对SSD优化): ```ini innodb_flush_method = O_DIRECT innodb_io_capacity = 20000 # SSD建议值[^3] innodb_flush_neighbors = 0 # 禁用邻页刷新 innodb_file_per_table = ON # 独立表空间 ``` #### 四、功能增强配置 1. **SQL模式设置**(引用[2]): ```ini sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION ``` 2. **密码策略**(MySQL 8.0特性): ```ini default_authentication_plugin = caching_sha2_password # 新认证插件[^3] validate_password.policy = MEDIUM ``` 3. **查询缓存优化**: ```ini query_cache_type = 0 # 8.0已弃用查询缓存[^3] ``` #### 五、配置验证公式 验证内存分配合理性: $$ \text{总内存消耗} = \text{innodb\_buffer\_pool\_size} + (\text{max\_connections} \times \text{每个连接内存}) $$ 其中每个连接内存约: $$ \text{每个连接内存} = \text{read\_buffer\_size} + \text{sort\_buffer\_size} + \text{join\_buffer\_size} $$ #### 六、配置生效流程 1. 语法检查: ```bash $ mysqld --validate-config --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf ``` 2. 增量重载配置: ```bash $ mysql -e "SET GLOBAL innodb_buffer_pool_size=21474836480;" # 动态调整缓冲池 ``` 3. 完整重启: ```bash $ sudo systemctl restart mysql ``` #### 七、场景化配置模板 高并发场景: ```ini innodb_buffer_pool_instances = 8 # 缓冲池实例数=CPU核心数 innodb_log_files_in_group = 3 # 重做日志文件数 ``` 大内存场景($64\text{GB}$+): ```ini innodb_buffer_pool_size = 48G innodb_log_file_size = 4G # 日志文件大小上限 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值