日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql目录权限设置_MySQL文件及目录权限设置分析-爱可生

發(fā)布時(shí)間:2025/3/20 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql目录权限设置_MySQL文件及目录权限设置分析-爱可生 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1

背景

創(chuàng)建文件及目錄時(shí),我們會(huì)對(duì)相關(guān)的權(quán)限有一定的要求,默認(rèn)的可以通過系統(tǒng)的umask來控制。然而,在我們使用MySQL時(shí),無論是開始使用前的初始化,還是MySQL實(shí)例啟動(dòng)后,創(chuàng)建的相關(guān)文件及目錄,并不受umask控制,MySQL 默認(rèn)創(chuàng)建出來的文件權(quán)限是0660,目錄權(quán)限是0700,并且,在通過引入MySQL初始化相關(guān)的環(huán)境變量解決了這一問題后,在以不同的MySQL的啟動(dòng)方式啟動(dòng)實(shí)例后,創(chuàng)建的文件及目錄的權(quán)限也不相同。以下,將從幾個(gè)方面分別討論。

2

umask對(duì)系統(tǒng)文件及

目錄的影響

以下是linux man-page中對(duì)umask的相關(guān)描述:

從該描述中,可以看出,umask影響open、mkdir等其他系統(tǒng)調(diào)用產(chǎn)生的新的文件或目錄的權(quán)限。

2.1 umask對(duì)open函數(shù)的影響

open函數(shù)用到umask的相關(guān)形式為:

截取open函數(shù)的部分描述:

通過該段描述,當(dāng)沒有默認(rèn)的acl時(shí),創(chuàng)建的文件的權(quán)限應(yīng)為mode & ~umask,而一般情況下針對(duì)文件來說,系統(tǒng)默認(rèn)的mode為0666(并不是所有的文件都可以執(zhí)行),所以實(shí)際創(chuàng)建的文件權(quán)限應(yīng)為 0666 & ~umask,當(dāng)umask為0022時(shí),創(chuàng)建出來的文件的權(quán)限應(yīng)為0644。

2.2 umask對(duì)mkdir函數(shù)的影響

mkdir函數(shù)用的umask的相關(guān)形式:

截取相關(guān)描述:

在沒有默認(rèn)acl的情況下,創(chuàng)建的目錄的權(quán)限為 mode & ~umask & 0777,一般情況下,目錄的默認(rèn)的mode為0777,所以實(shí)際創(chuàng)建的目錄權(quán)限應(yīng)為 0777 & ~umask & 0777,當(dāng)umask為0022時(shí),創(chuàng)建的目錄的權(quán)限應(yīng)為0755。

2.3 參考資料

[umask 參考](http://man7.org/linux/man-pages/man2/umask.2.html)

[open 參考](http://man7.org/linux/man-pages/man2/open.2.html)

[mkdir 參考](http://man7.org/linux/man-pages/man2/mkdir.2.html)

3

Umask對(duì)MySQL默認(rèn)的影響

3.1 Umask對(duì)MySQL默認(rèn)的影響

當(dāng)umask=0022時(shí),初始化后生成的文件及目錄權(quán)限:

可以看出創(chuàng)建出來的文件的權(quán)限為0660,目錄權(quán)限為0700,與系統(tǒng)umask并無關(guān)系。

實(shí)例啟動(dòng)后,通過mysql連接數(shù)據(jù)庫,創(chuàng)建新的數(shù)據(jù)庫及表,查看權(quán)限:

新創(chuàng)建的文件及目錄權(quán)限為0660、0700,同樣與umask無關(guān)。

3.2 源碼層面分析

通過這段源碼可以看出,當(dāng)沒有設(shè)置UMASK、UMASK_DIR環(huán)境變量時(shí),MySQL默認(rèn)創(chuàng)建文件及目錄的權(quán)限分別為0660、0700。

4

自定義MySQL相關(guān)文件及

目錄權(quán)限

4.1 初始化過程中文件及目錄的權(quán)限

4.1.1 方法

MySQL 提供另外一種方法,設(shè)置UMASK和UMASK_DIR環(huán)境變量,可以影響創(chuàng)建文件和目錄的權(quán)限:

The default UMASK and UMASK_DIR values are 0660 and 0700, respectively. MySQL assumes that the value forUMASK or UMASK_DIR is in octal if it starts with a zero. For example,setting UMASK=0600 is equivalent toUMASK=384 because 0600 octal is 384 decimal.

The UMASK and UMASK_DIR variables, despite their names, are used as modes, not masks:

If UMASK is set, mysqld uses ($UMASK | 0600) as the mode for file creation, so that newly created files have a mode in the range from 0600 to 0666 (all values octal).

If UMASK_DIR is set, mysqld uses ($UMASK_DIR | 0700) as the base mode for directory creation, which then is AND-ed with ~(~$UMASK & 0666), so that newly created directories have a mode in the range from 0700 to 0777 (all values octal). The AND operation may remove read and write permissions from the directory mode, but not execute permissions.

簡單的把核心內(nèi)容翻譯一下,設(shè)置了UMASK及UMASK_DIR之后,生成的文件及目錄的權(quán)限應(yīng)分別為:

如設(shè)置了UMASK=0664,UMASK_DIR=0774,在經(jīng)過以上運(yùn)算之后,生成的文件及目錄的權(quán)限應(yīng)為0664,0774。

4.1.2 設(shè)置方式

設(shè)置這兩個(gè)環(huán)境變量的建議做法是,在用戶的/etc/skel/{bashrc, bash_profile}文件和root用戶的.bashrc .bash_profile中加入:

4.1.3 驗(yàn)證

驗(yàn)證所用版本:mysql 5.6.31

系統(tǒng)umask:

UMASK、UMASK_DIR環(huán)境變量:

初始化后生成的文件及目錄權(quán)限為:

4.1.4 特殊的目錄權(quán)限

在初始化完成后,mysql、test文件夾的權(quán)限和預(yù)期不符,出現(xiàn)此種情況的原因?yàn)閙ysql、test文件夾的創(chuàng)建是通過scripts/mysql_install_db這個(gè)perl腳本實(shí)現(xiàn)的,找到相關(guān)的代碼如下,可以看出,這兩個(gè)文件夾的創(chuàng)建時(shí)的權(quán)限是固定的。

4.2 啟動(dòng)及MySQL實(shí)例運(yùn)行中創(chuàng)建文件及目錄的權(quán)限

啟動(dòng)mysql 有兩種方式,/etc/init.d/mysql start或?service mysql start,這兩種方式都能夠正確的啟動(dòng)MySQL,但實(shí)際情況是有差別的,尤其是在設(shè)置了上述環(huán)境變量的情況下。

查看了service 命令的 manual,描述是這樣的:

DESCRIPTION

service runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /.

通過驗(yàn)證后確實(shí)如此,用service 命令啟動(dòng) 會(huì)去掉UMASK環(huán)境變量:

4.2.1 驗(yàn)證

啟動(dòng)后,生成的mysql.err文件權(quán)限為0640,通過mysql連接數(shù)據(jù)庫,創(chuàng)建的新的database及table,查看權(quán)限:

實(shí)例運(yùn)行后創(chuàng)建的文件及目錄權(quán)限為0660、0700,UMASK、UMASK_DIR環(huán)境變量未起作用。

4.2.1.1 源碼層面分析

使用service mysql start 啟動(dòng):

使用service mysql start 啟動(dòng)不會(huì)產(chǎn)生 atoi_octal 函數(shù)調(diào)用,所以UMASK、UMASK_DIR環(huán)境變量沒有生效。

4.2.2 解決辦法

啟動(dòng)腳本中加入 export UMASK等環(huán)境變量;

不使用service命令啟動(dòng)。

驗(yàn)證

驗(yàn)證所用版本:mysql 5.6.31

以下,通過在每次啟動(dòng)MySQL服務(wù)之前,刪除MySQL的錯(cuò)誤日志,啟動(dòng)之后查看生成的錯(cuò)誤日志的權(quán)限來具體說明這個(gè)問題(本例中,錯(cuò)誤日志為mysql.err),最初初始化生成的錯(cuò)誤日志的權(quán)限為0664,即 rw-rw-r–。

啟動(dòng)腳本中加入 export UMASK等環(huán)境變量:

啟動(dòng)后mysql.err權(quán)限為0664,通過mysql連接數(shù)據(jù)庫,創(chuàng)建新的數(shù)據(jù)庫及表,查看權(quán)限:

新創(chuàng)建的文件及數(shù)據(jù)庫目錄的權(quán)限為0664、0774。

4.2.2.1 源碼層面分析

使用service啟動(dòng):

產(chǎn)生atoi_octal調(diào)用,UMASK、UMASK_DIR環(huán)境變量生效。

1. 不使用service命令啟動(dòng)

啟動(dòng)后生成的mysql.err權(quán)限仍為0664,通過mysql連接數(shù)據(jù)庫,創(chuàng)建新的數(shù)據(jù)庫及表,查看權(quán)限:

新創(chuàng)建的文件及數(shù)據(jù)庫目錄的權(quán)限為0664、0774。

4.2.2.2 源碼層面分析

使用/etc/init.d/mysql 啟動(dòng):

使用/etc/init.d/mysql start 啟動(dòng),產(chǎn)生atoi_octal函數(shù)調(diào)用,UMASK、UMASK_DIR環(huán)境變量生效。

4.2.3 特殊文件的權(quán)限

socket文件權(quán)限:

每次MySQL啟動(dòng)之后產(chǎn)生的socket文件(本例中的mysql.sock)的權(quán)限與預(yù)期不符,通過查看相關(guān)源碼,以及相關(guān)socket文件生成的源碼,可以解釋該現(xiàn)象。

4.2.3.1 源碼層面分析

MySQL socket文件生成源碼:

socket文件生成的相關(guān)源碼:

4.3 總結(jié)

代碼中單獨(dú)定義了my_umask變量,并通過判斷環(huán)境變量來調(diào)整my_umask的值;

如果日志文件存在, 重啟時(shí)打開日志時(shí)并不會(huì)對(duì)文件權(quán)限變更;如果文件不存在,打開日志時(shí)會(huì)創(chuàng)建并設(shè)定文件權(quán)限。

總結(jié)

以上是生活随笔為你收集整理的mysql目录权限设置_MySQL文件及目录权限设置分析-爱可生的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产91啪| 国模人体一区二区 | 国产一卡二卡三卡四卡 | 性做爰视频免费播放大全 | 亚洲精品高潮久久久久久久 | 浪漫樱花动漫在线观看免费 | 午夜精品久久久久久毛片 | 就操成人网| 亚洲精品无码久久久久 | 成人性生交大片免费看96 | 九九热久久免费视频 | 亚洲精品久久久久中文字幕二区 | 黄色综合网 | 成人高清 | 国产福利视频一区 | 国产欧美综合在线 | 农村老熟妇乱子伦视频 | 爱操在线 | 女性裸体下面张开 | 国产电影一区在线观看 | 精品国产一区二区三区日日嗨 | 97精品一区二区 | 一本色道综合久久欧美日韩精品 | 久久精品天天中文字幕人妻 | 国产高潮又爽又无遮挡又免费 | 免费看麻豆| 9999久久久久 | 麻豆高清| 男人插女人免费视频 | 久久草视频 | 欧洲一区在线观看 | 久久精品午夜 | 免费毛片一区二区三区 | 欧美在线视频第一页 | 一级做a在线观看 | 国产免费黄色录像 | 日本黄xxxxxxxxx100 | 蜜臀av一区二区三区激情综合 | 修女也疯狂3免费观看完整版 | 亚洲の无码国产の无码步美 | 亚洲精品男人的天堂 | 99在线观看免费视频 | 国产伦一区二区 | 中文字幕 自拍偷拍 | 活大器粗np高h一女多夫 | 国产精品剧情 | 青青草手机在线 | 一区二区手机在线 | 亚洲成人av一区二区三区 | 欧美a级免费 | 日韩中文字幕网站 | 午夜桃色 | 黄色污污网站 | 亚洲精选久久久 | 欧美二区在线 | 亚洲一区二区免费看 | 色视频在线看 | 欧美黄色一区二区三区 | 91精品啪 | 九九成人 | 日韩一级伦理片 | 99国产精品国产精品九九 | 国产一区二区三区在线观看免费 | 天天干天天操天天插 | 国产精品国产三级国产普通话蜜臀 | 亚洲最大的成人网 | 欧美一级高潮片 | 国产寡妇亲子伦一区二区三区四区 | 激情六月婷婷 | 久久久久亚洲av无码a片 | 天海翼视频在线观看 | 美国黄色网址 | 欧美日韩午夜 | av在线免费网站 | 久久国| 精品久久久久久久久久久久久久久 | 亚洲精品无吗 | 婷婷导航| 日韩无套无码精品 | 深夜视频在线 | 黄色三级三级三级 | 精品久久九九 | 成人日批视频 | 97视频在线免费观看 | 免费性片 | 在线欧美视频 | av最新地址| 国产成人无码一区二区在线播放 | 欧美在线精品一区 | 国产一区二区免费视频 | 怡红院男人天堂 | exo妈妈mv在线播放高清免费 | 91在线视频精品 | 午夜国产福利 | 91九色在线视频 | 亚洲精品视频免费观看 | 极品尤物魔鬼身材啪啪仙踪林 | 老司机深夜福利视频 | 成人羞羞国产免费游戏 |