假设我的 umask 是 0077。
我有一个目录,foo
我想对其应用特殊权限。我在其中创建的所有文件foo
都应该是全局可读的,并且所有目录都应该是全局可读和可执行的。
目前,如果我创建一个文件,它将是 0600,目录将是 0700:
$ cd foo/
$ touch file
$ mkdir directory
$ ls -l
drwx------ 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw------- 1 nfm nfm 0 2012-01-12 16:15 file
Run Code Online (Sandbox Code Playgroud)
我希望文件是 0644,目录是 0755,不管我的 umask:
drwxr-xr-x 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw-r--r-- 1 nfm nfm 0 2012-01-12 16:15 file
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在使用该automysqlbackup
脚本转储我的 mysql 数据库,但我希望有一个只读用户来执行此操作,这样我就不会将我的根数据库密码存储在纯文本文件中。
我创建了一个这样的用户:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Run Code Online (Sandbox Code Playgroud)
当我运行mysqldump
(通过automysqlbackup
或直接)时,我收到以下警告:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Run Code Online (Sandbox Code Playgroud)
我做错了吗?我的只读用户需要额外的授权吗?还是只能root
锁information_schema
表?这是怎么回事?
编辑:
GAH,现在它可以工作了。我以前可能没有运行 FLUSH PRIVILEGES。
顺便说一句,这种情况多久自动发生一次?
编辑:
不,它不起作用。mysqldump -u username -p --all-databases > dump.sql
手动运行不会产生错误,但不会转储 information_schema。automysqlbackup
确实会引发错误。
我正在尝试编写一个脚本来为我的 bash shell 设置别名,但我不想source
自动输入.bashrc
- 我需要在我的终端子集中使用别名。
是否可以alias
在脚本中使用命令并使别名命令适用于运行脚本的 shell?
期望的功能:
$ alias
# ... no output here
$ ./my-script
$ alias
alias foo='bar'
alias alpha='beta'
...
Run Code Online (Sandbox Code Playgroud)