Я воспроизвел эту проблему на двух машинах fedora 21.
Я хотел бы, чтобы sqlite3
не записывал файл ~/.sqlite_history
. Я не мог найти вариант, но сказал, что я сделаю так, что он не может написать.
Однако, это все еще может написать, и я не понимаю.
~$ which sqlite3
/usr/bin/sqlite3
~$ ls -l /usr/bin/sqlite3
-rwxr-xr-x. 1 root root 69456 Nov 25 12:00 /usr/bin/sqlite3
~$ ls -l .sqlite_history
ls: cannot access .sqlite_history: No such file or directory
~$ touch .sqlite_history
~$ sudo chown root .sqlite_history
[sudo] password for emmanuel:
~$ sudo chmod 600 .sqlite_history
~$ sudo chgrp root .sqlite_history
~$ ls -l .sqlite_history
-rw------- 1 root root 0 Jan 7 08:45 .sqlite_history
~$ whoami
emmanuel
~$ groups
emmanuel wheel
~$ echo test > .sqlite_history
bash: .sqlite_history: Permission denied
~$ sqlite3 test.db
SQLite version 3.8.7.2 2014-11-18 20:57:56
Enter ".help" for usage hints.
sqlite> select * from server;
Error: no such table: server
sqlite>
~$ cat .sqlite_history
select * from server;
~$ ls -l .sqlite_history
-rw------- 1 emmanuel emmanuel 22 Jan 7 08:45 .sqlite_history
$ mount | grep home
/dev/sda7 on /home type ext4 (rw,relatime,data=ordered)
Я также пробовал символическую ссылку на /dev/null
а в этом случае sqlite3 просто перезаписывает файл ?? Что здесь происходит? Почему sqlite удается перезаписать этот файл?
Я сделал ls
в двоичном sqlite3
чтобы проверить, что это действительно не suid root и это не так. Я не понимаю