最新記事

WSLのExiftoolは書き込めません。
ubuntu
exif

WSLのExiftoolは書き込めません。

使用エクスポートツール存在するLinux用Windowsサブシステム(WSL、Ubuntu)EXIFデータを印刷できます。 # exiftool test.pdf ExifTool Version Number : 10.80 File Name : test.pdf Directory : . File Size : 279 kB File Modification Date/Time : 2020:04:28 23:00:41+02:00 File Access Date/Time : 2020:04:28 23:08:51+02:00 File Inode Change Date/Time : 2020:04:28 23:00:41+02:00 File Permissions : rwxrwxrwx File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.7 Linearized : No Warning : Info object (11 0 obj) not found at 285226 しかし、変更または削除できません。たとえば、次のコマンドは私が理解できないエラーを引き起こします。 # exiftool -all= test.pdf Error: Info object (11 0 obj) not found at 285226 - test.pdf 0 image files updated 1 files weren't updated due to errors 書き込み権限がわからないため、元のファイル(Windowsで作成)をWSLからコピーし、名前をtest.pdfに変更しましたが、問題は解決しませんでした。 次の提案を見つけましたが、問題は解決されませんでした。 パスの短縮 https://beepily.com/2011/10/fixing-messed-up-metadata-with-exiftool/ (exiftool -all = -tagsfromfile @ -all:all -unsafe)

Admin

dhclientがネットワークインタフェースの固定アドレスを上書きするのを防ぐ方法は?
networking
dhclient

dhclientがネットワークインタフェースの固定アドレスを上書きするのを防ぐ方法は?

dhclient実行中のインターフェイスがありますeno2。 3070 /sbin/dhclient -1 -v -pf /run/dhclient.eno2.pid -lf /var/lib/dhcp/dhclient.eno2.leases -I -df /var/lib/dhcp/dhclient6.eno2.leases eno2 dhclient10.10.10.48/25DHCPサーバーからリースを取得し、次の場所にインストールしましたeno2。 $ ip a sh dev eno2 7: eno2: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 3c:a8:2a:1e:f8:db brd ff:ff:ff:ff:ff:ff inet 10.10.10.48/25 brd 10.10.10.127 scope global eno2 valid_lft forever preferred_lft forever inet6 fe80::3ea8:2aff:fe1e:f8db/64 scope link valid_lft forever preferred_lft forever $ DHCPサーバーはアドレス10.10.10.1をにリースします10.10.10.50。インターフェイスを実行し続けながらインターフェイス10.10.10.55/25に追加したいと思います。可能ですか?現在、手動で追加したアドレスは時間が経つと削除されるようです。おそらく、これはリースが更新される時点です。私はDHCPサーバーを制御できません。現在私は回避策としてこれを実行しています。eno2dhclientdhclient10.10.10.55/25while true; do sudo ip a add 10.10.10.55/25 dev eno2 2>/dev/null; done

Admin

amdgpuでGTTを無効にしますか?
kernel
memory
amd-graphics
amd
kernel-parameters

amdgpuでGTTを無効にしますか?

amdgpuでGTTを無効にする方法は? ~によるとhttps://www.kernel.org/doc/html/v4.20/gpu/amdgpu.html、追加がamdgpu.gttsize=0機能するはずですが、効果はありません。 私が尋ねる理由は、私のVega 8グラフィックカード(AMD Ryzen 7 PRO 5850U CPU)にはすでに4GB VRAMがあり、別の4GB GTTが必要なためです。 GTTメモリは私の「一般」16GBメモリとは関係ありませんが、GPU(コンパイル、データベース...)ではなくCPUを主に使用するため、12GBしか使用できません。

Admin

シェルスクリプト構文エラー
linux
shell-script

シェルスクリプト構文エラー

私はUNIXを学び始めましたが、ここで問題を特定することはできません。エラーを指摘してもらえますか? age=30 if [[ $age -lt 18 ]] then echo "not eligible" elif [[ $age -gt 18 && $age -lt 60 ]] echo "eligible" else echo "stay home" fi exit

Admin

現在のインストールで起動可能なISOイメージを作成する
ubuntu
iso
root-filesystem
distributions
mkisofs

現在のインストールで起動可能なISOイメージを作成する

私たちは古い物理マシンを持っています。Ubuntuディストリビューションバージョン20.04実際のマシンには銃とが103GB /root partitionあります10GB as swap memory。現時点では、最大45GBのスペースを使用しています。現在のインストールで起動可能なISOイメージを作成しようとしています。 また、次のパッケージを使用して画像を生成しようとしています。このパッケージの実行中に「filesystem.squashfsサイズが4GBを超えています」というエラーが発生しました。その後、ファイルシステムファイルが8GB以上を消費していることを確認しました。したがって、イメージファイルを生成できません。現在のインストールでイメージを生成できる他のパッケージ/ツールはありますか?ありがとうございます! 1.remastersys – respin –https://itectec.com/ubuntu/ubuntu-build-the-own-ubuntu-iso/ 2.distroshareイメージジェネレータ -https://github.com/Distroshare/distroshare-ubuntu-imager

Admin

LinuxでSoftEther VPNクライアントIPルーティング
linux
iptables
ip
routing
vpn

LinuxでSoftEther VPNクライアントIPルーティング

サイト間(LANからLANへ)VPN(softether)を使用してLinuxクライアントコンピュータにルーティングテーブルを設定する際には、いくつかの問題があります。 Windowsクライアントではうまく機能しますが、Linuxではトラフィックをサーバーにルーティングする方法がわかりません。この画像は現在の構成を示しています。 「ipパスを追加...」ステップで停止しました。 VPNが接続されており、サイトAルーター(「dhclient vpn_vpn0」を実行した後)のIPアドレスは「192.168.0.105」ですが、「192.168.0.97」にpingを送信できず、当然アクセスできません。そこの機械。 DHCPが有効になっています。 サイトAホストをpingできるようにトラフィックをどのようにルーティングしますか? よろしくお願いします!

Admin

フルネットワークアクセス可能なネットワークネームスペースを作成する[LINUX]
linux
networking
dns
openvpn
namespace

フルネットワークアクセス可能なネットワークネームスペースを作成する[LINUX]

次のスクリプトを使用してLinux名前空間を作成しました。 read -p "ip : " ip ip netns add myvpn ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo ip netns exec myvpn ip link set lo up ip link add vpn0 type veth peer name vpn1 ip link set vpn0 up ip link set vpn1 netns myvpn up ip addr add $ip/24 dev vpn0 ip netns exec myvpn ip addr add $ip/24 dev vpn1 ip netns exec myvpn ip route add default via $ip dev vpn1 iptables -A INPUT \! -i vpn0 -s $ip/24 -j DROP iptables -t nat -A POSTROUTING -s $ip/24 -o ens3 -j MASQUERADE sysctl -q net.ipv4.ip_forward=1 mkdir -p /etc/netns/myvpn echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf しかし、名前空間に完全なネットワークアクセス権がないようです。 ip netns exec myvpn ping www.google.com ping: www.google.com: Temporary failure in name resolution 実際、「名前の確認が一時的に失敗しました」とはどういう意味なのかわかりません。 これを行う方法についてのアイデアはありますか?

Admin

Debian ネットワークの設定によりブラウザのダウンロードが失敗します。
debian
networking
networkmanager

Debian ネットワークの設定によりブラウザのダウンロードが失敗します。

私は最近私のコンピュータにDebianをインストールしました。 gnomeをインストールしましたが、現在NetworkManagerを使用してネットワークを管理しています。私のものを/etc/network/interfaces除いて空ですsource /etc/network/interfaces.d/*。 この問題はChromiumとFirefoxに影響し、「ダウンロードに失敗しました」というメッセージとして表示されます。このファイルは少しずつダウンロードされますが、プロセス中は失敗し続けます。 Wgetは問題なく同じファイルをダウンロードできます。このエラーを調査中に Chrome に次のメッセージが表示された場合、ダウンロードが失敗することがわかりました。 [9559:9602:0912/141853.151714:VERBOSE1:bus.cc(703)] Requested to remove an unknown filter function: 1 with associated data: 0x7f06500472e0 [9559:9602:0912/141853.151737:VERBOSE1:bus.cc(703)] Requested to remove an unknown filter function: 1 with associated data: 0x7f0650046d00 私にとってこれはある種の構成に問題があるようですが、それがどこにあるのかはわかりません。 編集:NetworkManagerを無効にして停止し、Debianの組み込みインタフェースシステムを使用した後の問題を修正しました。しかし、(gnomeとの統合のために)NetworkManagerを使用したいと思います。

Admin

666権限を持つファイルに対する権限が拒否されました。
linux
debian
permissions
ownership

666権限を持つファイルに対する権限が拒否されました。

この質問にはすでに答えがあります。: / tmpでは、rootに対するグループ権限は機能しません。 (回答1個) ルートは一般ユーザーが所有するファイルに書き込めません (回答1個) 閉鎖2年前。 新しい仮想マシンで次のコマンドを実行します。 $ sudo adduser banana Adding user `banana' ... Adding new group `banana' (1034) ... Adding new user `banana' (1033) with group `banana' ... ... $ sudo touch /tmp/test.txt $ sudo chmod 666 /tmp/test.txt $ python3 -c "open('/tmp/test.txt', 'w')" $ sudo chown banana:banana /tmp/test.txt $ python3 -c "open('/tmp/test.txt', 'w')" Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/tmp/test.txt' Ubuntu 20.04とDebian 11で他の人が所有するファイルを開こうとすると、権限が拒否されました。 CentOS 8.2とDebian 10では、最後の行が成功します。奇妙なことは、rootユーザーがファイルを所有している場合は書き込み用にファイルを開くことができますが、他のユーザーが所有している場合は開くことができないことです。とにかく読書は大丈夫です。 $ lsattr /tmp/test.txt --------------e------- /tmp/test.txt どうしたの?

Admin

特定のセッション内でのみ「cron」または「at」機能を提供するユーザーレベルのユーティリティはありますか?
cron
software-rec
scheduling
at
non-root-user

特定のセッション内でのみ「cron」または「at」機能を提供するユーザーレベルのユーティリティはありますか?

screenscreenそのセッションに接続されているSSH認証を使用しているため、手動で開始されたセッションとそのセッションでのみスケジュールされたいくつかのコマンドを定期的に実行したいと思います。 デフォルトでは、これが意味するのは、スクリーンセッションの開始後にセッションにsshキーを追加してからコマンドを起動すると、ユーティリティで実行されるすべての後続のコマンドがそのキーによって提供されるリモートリソースにアクセスできることです。 セッションが終了したら終了です。 atcronで完了したようですが、rootユーザーレベルのプログラムが私のアカウントとディレクトリで実行されることを望みます。

Admin

ダイアログボックス(ncurses)の最小用語機能のリストはありますか?
terminal
ncurses
dialog
terminfo
termcap

ダイアログボックス(ncurses)の最小用語機能のリストはありますか?

ncursesダイアログライブラリ(どこでも利用可能)を使用しようとしています。ソースミラーはこちら)、ダイアログボックスを使用するか、stdin / out / errがcharブロックデバイス、ttys、およびどのtermcapsに接続されているかによって、stderrとプロンプトで印刷するかどうかをコードで動的に決定します。私は less で正しくレンダリングできるかどうかを検出するのにかなり信頼できるコードを盗み、termcaps ce、cd、cland cm、または を探して、そうhoでなければll愚かなモードに切り替えます。ただし、lessの要件はダイアログボックスより低くなる可能性があります(多く?)(少なくともyesnoボックスのみが必要です)。ダイアログやncursesに大文字を確認せずに端末に問題を処理できるかどうか尋ねる方法がなく、大文字がないとinitscrが失敗することに少し驚きました。 Emacsシェルのダイアログボックス(ansi-termではなく、obvsではうまく機能します)は意味のないテキストだけを吐き出し、愚かな端末(通常のxtermと同じ)なので、ここで進む機能は明らかにありません。alsrexport TERM=dumb 私はほとんどの場合UNIXプログラマーではありません。これを行う信頼できる標準的な方法はありますか?私を変に考えるのは、これが確認しやすいことではないということです。 明らかに、ダイアログを介してコードを書いて、それが呼び出すすべてのncursesエントリを記録しようとするかもしれませんが、それは痛いので、どこかで端末の機能要件の明確なリストを見つけることができないことを願っています。 修正する:だから私は「yesno」ダイアログをどれだけうまく得ることができるかをテストするために独自のカスタムterminfoエントリを作成することにしました。サイズが非常に小さいので、テストの数を減らす方が良いです。これを行う方法を理解するのは難しいです。したがって、THE FUTUREの他の人が簡単に要約した内容は次のとおりです。 以下はtermcap定義です。問題を特定する必要があります。 terminfo定義を使用していくつかの手順をスキップすることができますが、lessなどの古いソフトウェアはtermcapバージョンを使用しているため、そのスペースで作業する方が簡単です。 dialog --title Hi --yesno There 0 0現在ターミナル(またはncurses)で実行されているncursesアプリケーションがあるとし、TERM envvarが何であるかを調べてください。私は画面とemacs ansi-termで作業しているので、もちろんテストscreen中です。eterm-colordumb 作業したいバージョンのダンプを使用します(新しいバージョンが作業バージョンのサブセットになりたいのでテストを実行しています)。infocmp eterm > eterm2.infoこれにより、そのバージョンで使用したい情報が提供されます。 キャップに変えてinfotocap eterm2.info > eterm2.cap 内部を見て、次のように警告なしにほとんど実行されない最小限の制限ファイルであるかのように切り取ります。 # hacked eterm for testing dialog eterm2|gnu emacs term.el terminal emulation:\ :am:mi:xn:\ :co#80:li#24:\ :ce=\E[K:cd=\E[J:cl=\E[H\E[J:\ :ho=\E[H:\ :cm=\E[%i%d;%dH:\ :al=\E[L: 最初は名前もeterm2に変更しました。 再び情報に変換captoinfo eterm2.cap > eterm2.info mkdir infodbこのテスト情報がコンパイルされるローカルディレクトリを作成します。 export TERMINFO=$(pwd)/infodbtermcap / terminfoで見つけることができる場所を教えてください。 tic -Dローカルディレクトリを最初に出力する必要があります。 tic -s eterm2.infoこのディレクトリにコンパイルしてください export TERM=eterm2新しいハッカー端末の設定 ncurses アプリケーションを実行します。それ以外の場合は、dialog --title Hi --yesno There 0 0単に白黒で表示する必要があります。 他のコマンドを再度追加して変更を確認できますが、完了したらすべてがrm -rf infodb正しく実行されていることを確認してくださいexport TERMINFO=。export TERM= アップデート2: これは私が完成したコードであり、すべてのテストで動作するようです。 if(TermMode == TERM_UNINITIALIZED) { struct stat s; if((isatty(STDOUT_FILENO) && (fstat(STDOUT_FILENO,&s) == 0) && S_ISCHR(s.st_mode)) && (isatty( STDIN_FILENO) && (fstat( STDIN_FILENO,&s) == 0) && S_ISCHR(s.st_mode))) { // both stdout and stdin are char block device ttys, now check termcaps // mostly stolen from the gnu less source code, since it seems robust // https://github.com/gwsw/less/blob/22e4af5cccbfab633000c7d610f868a868ad6e1a/screen.c#L1280 char termbuf[2048]; char const* term = getenv("TERM"); int const TGETENT_OK = 1; if(tgetent(termbuf,term) == TGETENT_OK) { char sbuf[2048]; char* sp = sbuf; char* sr = 0; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wwrite-strings" // ce ce cl are required if((sr = tgetstr("ce",&sp)) && *sr && // eol clear (sr = tgetstr("cd",&sp)) && *sr && // eos clear (sr = tgetstr("cl",&sp)) && *sr) // screen clear { // cm or (ho and ll) if(((sr = tgetstr("cm",&sp)) && *sr) || // cursor move (((sr = tgetstr("ho",&sp)) && *sr) && // home ((sr = tgetstr("ll",&sp)) && *sr))) // lower left { // al or sr if(((sr = tgetstr("al",&sp)) && *sr) || // add line ((sr = tgetstr("sr",&sp)) && *sr)) // scroll reverse { // we've got what we need for ncurses dialog! TermMode = TERM_DIALOG; goto term_detected; } } } #pragma GCC diagnostic pop } // we're at least connected to a tty TermMode = TERM_STDIO; } else { // no interaction, so gotta just abort TermMode = TERM_ABORT; } term_detected: ; } とにかく、最小のタンクキャップが何であるかを知ることはまだ良いですが、少なくとも上記のものは作業負荷を軽減するので使用します。 ありがとう、クリス

Admin