Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 设置粘滞位时无法从根用户写入sqlite_Linux_Sqlite_Ubuntu - Fatal编程技术网

Linux 设置粘滞位时无法从根用户写入sqlite

Linux 设置粘滞位时无法从根用户写入sqlite,linux,sqlite,ubuntu,Linux,Sqlite,Ubuntu,我在文件夹中有一个sqlite数据库,权限中有一个粘性位。文件夹由root用户打开。db文件不属于任何根用户,并且具有完全权限: ibse@ibse-VirtualBox:/var/internal$ ll total 32 drwxrwxrwt 2 root root 4096 кві 16 12:00 ./ drwxr-xr-x 3 root root 4096 кві 16 10:47 ../ -rwxrwxrwx 1 ibse ibse 21504 кві 16 12:00 mydb

我在文件夹中有一个sqlite数据库,权限中有一个
粘性位。文件夹由
root用户打开。db文件不属于任何根用户,并且具有完全权限:

ibse@ibse-VirtualBox:/var/internal$ ll
total 32
drwxrwxrwt 2 root root  4096 кві 16 12:00 ./
drwxr-xr-x 3 root root  4096 кві 16 10:47 ../
-rwxrwxrwx 1 ibse ibse 21504 кві 16 12:00 mydb.dat*
当我尝试从
root
用户插入数据库时,数据库拒绝
尝试写入只读数据库

ibse@ibse-VirtualBox:/var/internal$ sudo sqlite3 mydb.dat

SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.

sqlite> INSERT INTO DATA (sent) VALUES (1);
Error: attempt to write a readonly database
sqlite>
但是,当我从包含数据库文件的文件夹中删除粘性位时,我可以将以下内容插入其中:

ibse@ibse-VirtualBox:/var/internal$ sudo chmod -t .
ibse@ibse-VirtualBox:/var/internal$ sudo sqlite3 mydb.dat

SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.

sqlite> INSERT INTO DATA (sent) VALUES (1);
sqlite>

为什么会这样?如果我正确理解
sticky bit
概念,则
root
用户可以管理文件夹中的所有文件,即使设置了sticky

,我现在也找不到源文件-但是如果内存足够,则DB文件和附带文件夹都需要对尝试更改DB的用户具有写入权限。因此,也许可以包括内部/?@BAerts权限的屏幕截图,我在帖子的一开始就提供了有关
internal/
权限的信息。如果没有完全理解这一点,我深表歉意<代码>内部/
具有
DRWXRWT 2根根目录4096іі16 12:00
权限我不好-你是对的。。。如果您执行与root不同的测试(即取消sudo),会发生什么情况?如果确保文件夹和文件的所有者都是root或ibse(chown),会发生什么情况?我之所以这么问是因为这篇文章——while说只有目录所有者才能删除tempdb文件